#include #include #include using namespace std; using ll = long long; constexpr ll MOD = 1'000'000'007; int main(){ int n, d, k; cin >> n >> d >> k; vector> dp(n+10, vector(100010, 0)); dp[0][0] = 1; for(int i = 0; i < n; i++){ for(int j = 0; j < 100000; j++){ dp[i+1][j+1] += dp[i][j]; dp[i+1][j+1] %= MOD; dp[i+1][min(j+d+1, 100005)] -= dp[i][j]; dp[i+1][min(j+d+1, 100005)] += MOD; dp[i+1][min(j+d+1, 100005)] %= MOD; } for(int j = 0; j < 100000; j++){ dp[i+1][j+1] += dp[i+1][j]; dp[i+1][j+1] %= MOD; } } cout << dp[n][k] << endl; return 0; }