l=[[(0..9).to_a,[0]]]
a=[[0]]
10.times{|i|
r=[]
a<<l.flat_map{|m,s|
m.flat_map{|n|
q=n*(i+1)
(r.assoc(u=m-[n])||(r<<[u,[]])[-1])[1]+=(b=s.map{|j|j+q})
b
}
}
l=r
}
$<.map{|l|c,d=l.split.map &:to_i
p a[c].count(d)
}