#include <bits/stdc++.h>
using namespace std;
#define int long long
#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(),0);
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;
}
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBsZCBsb25nIGRvdWJsZQoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuLHk7CiAgICBjaW4gPj4gbiA+PiB5OwogICAgCiAgICB2ZWN0b3I8aW50PmIobik7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKWNpbj4+IGJbaV07CgogICAgaW50IHN1bT1hY2N1bXVsYXRlKGIuYmVnaW4oKSxiLmVuZCgpLDApOwogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PmRwKG4rMSx2ZWN0b3I8aW50Pih5KzEpKTsKCiAgICBmb3IgKGludCBpPTA7IGk8PW47IGkrKykgZHBbaV1bMF0gPSAxOy8vIDEgd2F5LT4gbm90IHRha2luZyBhbnl0aGluZyB0byBtYWtlIHN1bT0wCiAgICAKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBmb3IoaW50IGo9MTtqPD15O2orKyl7CiAgICAgICAgICAgIGRwW2ldW2pdPShqLWJbaS0xXT49MCA/IGRwW2ktMV1bai1iW2ktMV1dOjApK2RwW2ktMV1bal07CiAgICAgICAgfQogICAgfQogICAgY291dDw8ZHBbbl1beV08PGVuZGw7Cn0KCmludDMyX3QgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBzb2x2ZSgpOwogICAgcmV0dXJuIDA7Cn0=