N,W = map(int,input().split()) lsA = list(map(int,input().split())) ans = 0 for j in range(2**N): lsA0 = [] for k in range(N): if (j>>k) & 1: lsA0.append(lsA[k]) flag = False for i in range(len(lsA0)): cost = 0 for l in range(len(lsA0)): if l == i: cost += lsA0[l]//2 else: cost += lsA0[l] if (cost == W): flag = True break if sum(lsA0) == W: flag = True if flag: ans += 1 print(ans)