mod = 10**9 + 7
n, l = map(int, input().split())

dp = [0] * (n + 1)
dp[0] = 1
current_sum = 1  # sum of dp[0...i-1] for the first i=1

for i in range(1, n + 1):
    dp[i] = current_sum % mod
    if i >= l:
        current_sum = (current_sum + dp[i] - dp[i - l]) % mod
    else:
        current_sum = (current_sum + dp[i]) % mod

print(dp[n] % mod)