#include #include using namespace std; const int MOD = 1000000007; int main() { cin.tie(0); ios::sync_with_stdio(false); int N, d, K; cin >> N >> d >> K; vector dp(K+1); for (int i = 1; i <= min(d, K); i++) dp[i] = 1; for (int i = 2; i <= N; i++) { for (int i = 1; i < K; i++) dp[i+1] = (dp[i+1] + dp[i]) % MOD; for (int j = K; j >= 1; j--) { dp[j] = dp[j-1] - dp[max(0, j-d-1)]; if (dp[j] < 0) dp[j] += MOD; } } cout << dp[K] << "\n"; }