#include using namespace std; typedef long long ll; const ll MOD = 1234567891ll; ll solve(const vector& A, ll M){ int S = 0; for(int x : A) S += x; S *= 2; vector dp(S + 10, 0); dp[0] = 1; for(;M;M>>=1){ for(int x : A){ for(int i=S-x;i>=0;i--){ dp[i+x] += dp[i]; dp[i+x] %= MOD; } } vector ndp(S + 10, 0); for(int i=0;i<=S;i++){ if((i ^ M) & 1) continue; ndp[i >> 1] += dp[i]; ndp[i >> 1] %= MOD; } dp.swap(ndp); } return dp[0]; } int main(){ int N; ll M; cin >> N >> M; vector A(N); for(int i=0;i> A[i]; cout << solve(A, M) << endl; return 0; }