N, K, L = map(int, input().split()) dp = [1] + [0]*(N-1) MOD = 10**9+7 for _ in range(K): new_dp = [0]*N cum = sum(dp[:L-1]) for i in range(L,N): cum += dp[i-1] cum %= MOD new_dp[i] += cum new_dp[i] %= MOD cum -= dp[i-L] for i in range(L): cum += dp[i-1] cum %= MOD new_dp[i] += cum new_dp[i] %= MOD cum -= dp[i-L] dp = new_dp print(*dp, sep='\n')