N,W = map(int,input().split()) A = list(map(lambda x:int(x) // 2,input().split())) ans = 0 for status in range(1 << N): items = [] for i in range(N): if (status >> i) & 1: items.append(A[i]) rest = W - sum(items) if rest < 0: continue if rest == 0: ans += 1 continue # itemsから幾つかを選んでrestに出来るか M = len(items) for bits in range(1 << M): val = 0 for i in range(N): if (bits >> i) & 1: val += items[i] if val >= rest: break if val == rest: ans += 1 break print(ans)