# https://yukicoder.me/problems/no/269 MOD = 10 ** 9 + 7 def main(): N, S, K = map(int, input().split()) dp = [0] * (S + 1) x = 0 while x <= S: dp[x] = 1 x += N for i in range(1, N): n = N - i new_dp = [0] * (S + 1) cum_dp = [0] * (n + 1) for x0 in range(S + 1): y = x0 // n if y >= K: cum_dp[x0 % n] += dp[(x0 % n) + ((y - K) * n)] cum_dp[x0 % n] %= MOD new_dp[x0] += cum_dp[x0 % n] new_dp[x0] %= MOD dp = new_dp print(dp[S]) if __name__ == "__main__": main()