#include #define rep(i,n) for(int i = 0; i < (n); ++i) #define srep(i,s,t) for (int i = s; i < t; ++i) #define drep(i,n) for(int i = (n)-1; i >= 0; --i) using namespace std; typedef long long int ll; typedef pair P; #define yn {puts("YES");}else{puts("NO");} #define MAX_N 200005 int main() { int n, d, K; cin >> n >> d >> K; ll MOD = 1000000007; ll dp[n+1][K+1]; rep(i,n+1)rep(j,K+1)dp[i][j] = 0; dp[0][0] = 1; srep(i,1,n+1){ rep(j,K+1){ srep(k,1,d+1){ if(j-k<0)break; dp[i][j] += dp[i-1][j-k]; dp[i][j] %= MOD; } } } cout << dp[n][K] << endl; return 0; }