Link to this code: https://cses.fi/paste/70372c1f7303f2c2103d74b/
#include <bits/stdc++.h>

using namespace std;

const int maxn = 1e6 + 5;
const int mod = 1e9 + 7;

int dp[maxn];

void solve() {
    dp[0] = 1;
    int n, x; cin >> n >> x;
    vector<int> a(n);
    for (int i = 0; i < n; i++) cin >> a[i];
    
    for (int i = 0; i < n; i++) {
        for (int val = 1; val <= x; val++) {
            if (val - a[i] >= 0) dp[val] = (dp[val] + dp[val - a[i]]) % mod;
        }
    }
    cout << dp[x] << "\n";
}



signed main() {
    ios_base::sync_with_stdio(false); cin.tie(nullptr);
    solve();
}