#include using namespace std; int dfs(int N, int W, vector &a, int p, long long S){ if (p == N){ if (S == W){ return 1; } else { return 0; } } else { int ans = 0; ans += dfs(N, W, a, p + 1, S); ans += dfs(N, W, a, p + 1, S + a[p] / 2); ans += dfs(N, W, a, p + 1, S + a[p]); return ans; } } int main(){ int N, W; cin >> N >> W; vector a(N); for (int i = 0; i < N; i++){ cin >> a[i]; } cout << dfs(N, W, a, 0, 0) << endl; }