#include using namespace std; #include using mint = atcoder::modint1000000007; int main() { int N, K; cin >> N >> K; vector dp(K + 2, 0); dp[0] = 1; for(int i = 0; i < N; ++i) { vector ndp(K + 2, 0); for(int k = 0; k <= K; ++k) { ndp[k] += dp[k]; ndp[min(K + 1, k + i + 1)] -= dp[k]; ndp[k + 1] += ndp[k]; } swap(dp, ndp); } mint ans = 0; for(int k = 0; k <= K; ++k) ans += dp[k]; cout << ans.val() << "\n"; }