N, L = gets.split.map(&:to_i) MOD = 10 ** 9 + 7 dp = Array.new(N + 1, 0) dp[0] = 1 sum = 1 1.upto(N) do |i| dp[i] = sum dp[i] %= MOD sum += dp[i] sum -= dp[i - L] if i - L >= 0 sum %= MOD end puts dp[N]