def aa(x): global s res=[];p=1 for i in x: c=[] d=i while s>=d: c.append(d);d*=i d=[] if p: res=c;p=0 continue for j in res: for l in c: if j+l>s: continue d.append(j+l) res=d return res n,s=map(int,input().split()) a=list(map(int,input().split())) if sum(a)>s: print(0) exit() if len(a)==1: print(len(aa(a)));exit() b=aa(a[:n//2]);c=aa(a[n//2:]) b.sort() b=[0]+b;ans=0 for i in c: q,w=0,len(b) while w-q>1: m=(q+w)//2 if b[m]+i<=s: q=m else: w=m ans+=q print(ans)