N, d, K = map(int, input().split()) M = d * N mod = 10 ** 9 + 7 pre = [0] * (M + 1) preAc = [0] * (M + 2) pre[0] = 1 for i in range(M + 1): preAc[i + 1] = preAc[i] + pre[i] for i in range(N): dp = [0] * (M + 1) Ac = [0] * (M + 2) for j in range(1, M + 1): dp[j] = preAc[j] - preAc[max(0, j - d)] Ac[j + 1] = Ac[j] + dp[j] dp[j] %= mod Ac[j + 1] %= mod dp, pre = pre, dp Ac, preAc = preAc, Ac print(pre[K])