def max(a,b); a > b ? a : b; end MOD = 10 ** 9 + 7 N,d,K = gets.split.map(&:to_i) dp = Array.new(N + 1){Array.new(N * d + 1, 0)} dp[0][0] = 1 (1 .. N).each do |i| (1 .. K).each do |s| dp[i - 1][s] = (dp[i - 1][s] + dp[i - 1][s - 1]) % MOD if s > d dp[i][s] = (dp[i - 1][s - 1] - dp[i - 1][s - d - 1]) % MOD else dp[i][s] = dp[i - 1][s - 1] % MOD end end end puts dp[N][K]