#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ld long double
#define all(x) (x).begin(), (x).end()
#define debug(x) cerr << #x << " = " << (x) << endl;
const int MOD = 1e9 + 7;
const int INF = 1e18;
const ld PI = acos(-1.0);
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int lcm(int a, int b) { return a / gcd(a, b) * b; }
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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIGFsbCh4KSAoeCkuYmVnaW4oKSwgKHgpLmVuZCgpCiNkZWZpbmUgZGVidWcoeCkgY2VyciA8PCAjeCA8PCAiID0gIiA8PCAoeCkgPDwgZW5kbDsKCmNvbnN0IGludCBNT0QgPSAxZTkgKyA3Owpjb25zdCBpbnQgSU5GID0gMWUxODsKY29uc3QgbGQgUEkgPSBhY29zKC0xLjApOwoKaW50IGdjZChpbnQgYSwgaW50IGIpIHsgcmV0dXJuIGIgPyBnY2QoYiwgYSAlIGIpIDogYTsgfQppbnQgbGNtKGludCBhLCBpbnQgYikgeyByZXR1cm4gYSAvIGdjZChhLCBiKSAqIGI7IH0KCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbix5OwogICAgY2luID4+IG4gPj4geTsKICAgIAogICAgdmVjdG9yPGludD5iKG4pOwogICAgZm9yKGludCBpPTA7aTxuO2krKyljaW4+PiBiW2ldOwoKICAgIGludCBzdW09YWNjdW11bGF0ZShiLmJlZ2luKCksYi5lbmQoKSwwKTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj5kcChuKzEsdmVjdG9yPGludD4oeSsxKSk7CgogICAgZm9yIChpbnQgaT0wOyBpPD1uOyBpKyspIGRwW2ldWzBdID0gMTsvLyAxIHdheS0+IG5vdCB0YWtpbmcgYW55dGhpbmcgdG8gbWFrZSBzdW09MAogICAgCiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgZm9yKGludCBqPTE7ajw9eTtqKyspewogICAgICAgICAgICBkcFtpXVtqXT0oai1iW2ktMV0+PTAgPyBkcFtpLTFdW2otYltpLTFdXTowKStkcFtpLTFdW2pdOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PGRwW25dW3ldPDxlbmRsOwp9CgppbnQzMl90IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwogICAgc29sdmUoKTsKICAgIHJldHVybiAwOwp9