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