#include using namespace std; int main() { int N, D, K; { cin >> N >> D >> K; } const int M = 1e9 + 7; vector d(K + 1); { d[0] = 1; for (int i = 0; i < N; ++i) { vector nd(K + 1); { int spd = d[0]; for (int j = 1; j <= K; ++j) { if (j - D - 1 >= 0) (spd -= d[j - D - 1]) %= M; nd[j] = spd; (spd += d[j]) %= M; } } swap(d, nd); } } int res = d[K]; { if (res < 0) res += M; } cout << res << endl; }