#include<bits/stdc++.h> using namespace std; using ll = long long; #define rep(i,m,n) for(int i=m; i<n; ++i) #define repl(i,m,n) for(ll i=m; i<n; ++i) int main(){ int N; ll W; cin >> N >> W; vector<ll> A(N); rep(i, 0, N) cin >> A[i]; int ans = 0; for(int bit = 1; bit < (1<<N); ++bit){ ll val = 0LL; rep(i, 0, N){ if(bit & (1<<i)){ val += A[i]; } } for(int bit2 = 0; bit2 < (1<<N); ++bit2){ ll val2 = val; rep(j, 0, N){ if(bit2 & bit & (1<<j)){ val2 -= (A[j] / 2LL); } } if(val2 == W){ ans++; break; } } } cout << ans << endl; return 0; }