#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> dp;
int possible(int sum, int n, int arr[])
{
for(int i=1;i<sum;i++){
dp[i][0] = 0;
}
for(int i=0;i<n;i++){
dp[0][i] = 1;
}
for(int i=1;i<sum;i++){
for(int j=1;j<n;j++){
dp[i][j] = dp[i][j-1];
if(arr[j-1] <= i){
dp[i][j] += dp[i-arr[j-1]][j];
}
}
}
return dp[sum][n];
}
int main() {
// your code goes here
return 0;
int n;
cin >> n;
int arr[n], sum;
cin >> sum;
for(int i: arr){
cin >> arr[i];
}
int res = possible(sum, n, arr);
cout << res;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8dmVjdG9yPGludD4+IGRwOwppbnQgcG9zc2libGUoaW50IHN1bSwgaW50IG4sIGludCBhcnJbXSkKewoJZm9yKGludCBpPTE7aTxzdW07aSsrKXsKCQlkcFtpXVswXSA9IDA7Cgl9Cglmb3IoaW50IGk9MDtpPG47aSsrKXsKCQlkcFswXVtpXSA9IDE7Cgl9Cglmb3IoaW50IGk9MTtpPHN1bTtpKyspewoJCWZvcihpbnQgaj0xO2o8bjtqKyspewoJCQlkcFtpXVtqXSA9IGRwW2ldW2otMV07CgkJCWlmKGFycltqLTFdIDw9IGkpewoJCQkJZHBbaV1bal0gKz0gZHBbaS1hcnJbai0xXV1bal07CgkJCX0KCQl9Cgl9CgkKCXJldHVybiBkcFtzdW1dW25dOwoJCn0KCgoKCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7CglpbnQgbjsKCWNpbiA+PiBuOwoJaW50IGFycltuXSwgc3VtOwoJY2luID4+IHN1bTsKCWZvcihpbnQgaTogYXJyKXsKCQljaW4gPj4gYXJyW2ldOwoJfQoJCglpbnQgcmVzID0gcG9zc2libGUoc3VtLCBuLCBhcnIpOwoJY291dCA8PCByZXM7Cn0=