# coding:UTF-8 import sys MOD = 10 ** 9 + 7 INF = float('inf') N, D, K = list(map(int, input().split())) # スペース区切り連続数字 dp = [[0] * (K + 1) for _ in range(N + 1)] dp_sum = [[0] * (K + 1) for _ in range(N + 1)] dp[0][0] = 1 for i in range(0, K+1): dp_sum[0][i] = 1 for n in range(1, N+1): for i in range(1, K+1): if i - D <= 0: s = dp_sum[n - 1][i - 1] else: s = dp_sum[n - 1][i - 1] - dp_sum[n - 1][i - D - 1] dp[n][i] = s % MOD dp_sum[n][i] = (dp[n][i] + dp_sum[n][i-1]) % MOD print("{}".format(dp[N][K]))