#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using mint = modint1000000007;
int main(){
    int N, L;
    cin >> N >> L;
    vector<mint>dp(N+1, 0);
    dp[0] = 1;

    for(int i=1;i<=N;i++){
        dp[i] = 2 * dp[i-1];
        if(i > L) dp[i] -= dp[i-1-L];
    }
    cout << (dp[N] - dp[N-1]).val() << endl;

    return 0;
}