typedef long long ll; typedef long double ld; #include using namespace std; #define int long long signed main(){ ll n,l; std::cin >> n>>l; vector dp(n+1),dp2(n+2); dp[0] = 1; dp2[1] = 1; const ll MOD = 1e9+7; for (int i = 1; i <= n; i++) { dp[i] = dp2[i]-dp2[max(0ll,i-l)]+MOD; dp[i] %= MOD; dp2[i+1] = dp2[i]+dp[i]; dp2[i+1] %= MOD; } std::cout << dp[n] << std::endl; }