typedef long long ll; typedef long double ld; #include using namespace std; int main() { ll n,d,k; std::cin >> n>>d>>k; vector> dp(k+2,vector(n+1,0)); vector> sum(k+2,vector(n+1,0)); dp[0][0] = 1; sum[1][0]= 1; for (int i = 1; i <= k; i++) { sum[i+1][0] = sum[i][0]; } for (int i = 0; i < k; i++) { for (int j = 0; j < n; j++) { dp[i+1][j+1] = sum[i+1][j]-sum[max(0ll,i-(d-1))][j]+(ll)1e9+7; dp[i+1][j+1] %= (ll)1e9+7; sum[i+2][j+1]= sum[i+1][j+1]+dp[i+1][j+1]; sum[i+2][j+1]%= (ll)1e9+7; } } std::cout << dp[k][n] << std::endl; }