#include #include using namespace std; using ll = long long; constexpr ll MOD = 1000000007; int N, K, a[300]; ll dp[300][300*(300-1)/2+1]; int main() { cin.tie(0); ios::sync_with_stdio(false); cin >> N >> K; for (int j = 0; j < N; ++j) cin >> a[j]; for (int j = 0; j < N; ++j) fill(dp[j], dp[j]+N*(N-1)/2, 0); dp[0][0] = 1; for (int j = 1; j < N; ++j) { for (int k = 0; k <= K; ++k) { dp[j][k] = dp[j-1][k]; if (k > 0) dp[j][k] = (dp[j][k] + dp[j][k-1]) % MOD; if (k > j) dp[j][k] = (dp[j][k] - dp[j-1][k-j-1] + MOD) % MOD; } } ll ans = 0; for (int j = 0; j <= K; ++j) { ans = (ans + dp[N-1][j]) % MOD; } cout << ans << endl; return 0; }