# 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[0][0] = 1 for n in range(1, N+1): for i in range(1, K+1): s = 0 for j in range(1, D+1): tar = i - j if tar < 0: break s = (s + dp[n-1][tar]) % MOD dp[n][i] = s print("{}".format(dp[N][K]))