N,W = map(int,input().split()) a = list(map(int,input().split())) ans = 0 def dfs(w,i,flag): global ans if w==W:ans+=1 else: if w>W or i>=N:return dfs(w+a[i],i+1,flag) dfs(w,i+1,flag) if not flag: dfs(w+a[i]//2,i+1,flag|True) dfs(0,0,False) print(ans)