#include #include //#include // #include using namespace std; // namespace mp = boost::multiprecision; // using Bint = mp::cpp_int; // using Real = mp::number>; int main(){ int n , d , k ; cin >> n >> d >> k ; long long mod = 1000000000 + 7; long long dp[n+1][k+1] ; for(int i = 0 ; i < n+1 ; i++){ for(int j = 0 ; j < k+1 ; j++){ dp[i][j] = 0; } } dp[0][0] = 1; for(int i = 1 ; i<= n ; i++){ for(int j = 0 ; j < k ; j++){ for(int l = 1 ; l <=d ; l++ ){ if( j+l <= k){ dp[i][j+l] = (dp[i][j+l] + dp[i-1][j]) % mod ; }else{ break; } } } } cout << dp[n][k] << endl; // cout << dp[n][k] << endl ; }