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