N,W = map(int,input().split()) a = list(map(int,input().split())) ans = 0 score = 0 cnd_list = [] cnd = [] flg = 0 def dfs(x): global score,ans,cnd,cnd_list,flg if score == W: cnd_list.append(tuple(cnd)) ans += 1 if x == N: return if score > W: return dfs(x+1) if flg == 0: flg = 1 score += a[x]//2 cnd.append((x,1)) dfs(x+1) cnd.remove((x,1)) score -= a[x]//2 flg = 0 score += a[x] cnd.append((x,0)) dfs(x+1) cnd.remove((x,0)) score -= a[x] return dfs(0) print(len(set(cnd_list)))