N, W = map(int, input().split()) A = list(map(int, input().split())) def solve(n): S = [] for i in range(N): if (n >> i) & 1: S.append(i) v = sum(A[s] for s in S) if v == W: return 1 T = set() for s in S: if A[s] in T: continue T.add(A[s]) ct = 0 for t in S: if A[t] == A[s]: ct += 1 for j in range(1, ct+1): if v-j*A[s]//2 == W: return 1 else: return 0 ans = 0 S = set() for i in range(2**N): ans += solve(i) print(ans)