#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const int mod = 1e9 + 7; int main() { #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif ios_base::sync_with_stdio(false); cin.tie(NULL); int n, k; cin >> n >> k; vectorv(n); for (int i = 0; i < n; i++) { cin >> v[i]; } vectordp1(k + 1, 0); dp1[0] = 1; for (int i = 0; i < n; i++) { vectordp2(k + 1, 0); for (int x = 0; x <= i; x++) { for (int y = 0; y + x <= k; y++) { dp2[x + y] += dp1[y]; dp2[x + y] %= mod; } } swap(dp1, dp2); } int ans = 0; for (int i = 0; i <= k; i++) { ans += dp1[i]; ans %= mod; } cout << ans << endl; }