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)