#include "bits/stdc++.h" #define rep(i,n) for(int i=0;i> N >> d >> K; //dp[i][j] : i回の移動でj段目にたどり着く方法 vector> dp(N + 1, vector(K + 1, 0)); dp[0][0] = 1; rep(i, N) { rep(j, K) { rep(k, d) { if (j + k + 1 > K) break; dp[i + 1][j + k + 1] += dp[i][j]; dp[i + 1][j + k + 1] %= MOD; } } } cout << dp[N][K] << "\n"; }