import numpy as np N, d, K = map(int, input().split()) N = np.int64(N) d = np.int64(d) K = np.int64(K) buf0 = np.zeros(d * N + K + 1, dtype = np.int64) buf1 = np.zeros(d * N + K + 1, dtype = np.int64) buf0[0] = 1 M = np.int64(1000000007) for i in np.arange(N): t = np.int64(0) for j in np.arange(d): t += buf0[j] t %= M buf1[j] = t for j in np.arange(d, (i + 1) * d): t -= buf0[j - d] t += buf0[j] t %= M buf1[j] = t buf0, buf1 = buf1, buf0 print(buf0[K - N])