#include <bits/stdc++.h>
using namespace std;
#define ld long double
void solve() {
int n,y;
cin >> n >> y;
vector<int>b(n);
for(int i=0;i<n;i++)cin>> b[i];
int sum=accumulate(b.begin(),b.end(),0LL);
vector<vector<int>>dp(n+1,vector<int>(y+1));
for (int i=0; i<=n; i++) dp[i][0] = 1;// 1 way-> not taking anything to make sum=0
for(int i=1;i<=n;i++){
for(int j=1;j<=y;j++){
dp[i][j]=(j-b[i-1]>=0 ? dp[i-1][j-b[i-1]]:0)+dp[i-1][j];
}
}
cout<<dp[n][y]<<endl;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgoKI2RlZmluZSBsZCBsb25nIGRvdWJsZQoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuLHk7CiAgICBjaW4gPj4gbiA+PiB5OwogICAgCiAgICB2ZWN0b3I8aW50PmIobik7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKWNpbj4+IGJbaV07CgogICAgaW50IHN1bT1hY2N1bXVsYXRlKGIuYmVnaW4oKSxiLmVuZCgpLDBMTCk7CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+ZHAobisxLHZlY3RvcjxpbnQ+KHkrMSkpOwoKICAgIGZvciAoaW50IGk9MDsgaTw9bjsgaSsrKSBkcFtpXVswXSA9IDE7Ly8gMSB3YXktPiBub3QgdGFraW5nIGFueXRoaW5nIHRvIG1ha2Ugc3VtPTAKICAgIAogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGZvcihpbnQgaj0xO2o8PXk7aisrKXsKICAgICAgICAgICAgZHBbaV1bal09KGotYltpLTFdPj0wID8gZHBbaS0xXVtqLWJbaS0xXV06MCkrZHBbaS0xXVtqXTsKICAgICAgICB9CiAgICB9CiAgICBjb3V0PDxkcFtuXVt5XTw8ZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgc29sdmUoKTsKICAgIHJldHVybiAwOwp9