#include <bits/stdc++.h>
using namespace std;
const int maxN = 1000005;
int n, M;
int a[maxN];
int X[maxN] = {0};
int rescount = 0;
void solve(int idx, int current_sum) {
    if (idx > n) {
        if (current_sum == M){
            rescount++;
        }
        return;
    }
    int remain = 0;
    for(int i = idx + 1; i <= n; i++) {
        remain += a[i];
    }
    int rangbuoc = (M - current_sum - remain) / a[idx];
    for(int i = 1; i <= rangbuoc; i++) {
        X[idx] = i;
        solve(idx + 1, current_sum + a[idx] * i);
        X[idx] = 0;
    }
}
int main() {
    cin >> n >> M;
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    solve(1, 0);
    cout << rescount;
}