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