#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define llint long long #define inf 1e18 #define mod 1000000007 #define rep(x, s, t) for(llint (x) = (s); (x) < (t); (x)++) #define Rep(x, s, t) for(llint (x) = (s); (x) <= (t); (x)++) using namespace std; llint n, d, k; llint dp[305][90005]; llint sum[90005]; int main(void) { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> d >> k; for(int i = 1; i <= d; i++) dp[1][i] = 1; for(int i = 2; i <= n; i++){ for(int j = 1; j <= k; j++){ sum[j] = sum[j-1] + dp[i-1][j], sum[j] %= mod; } for(int j = 1; j <= k; j++){ dp[i][j] = sum[j-1] - sum[max(0LL, j-d-1)] + mod; dp[i][j] %= mod; } } return 0; }