class Integer def mod_inverse(mod) self.pow(mod - 2, mod) end end N, K, M = gets.split.map(&:to_i) MOD = 10 ** 9 + 7 ans = 0 memo = Array.new(N + 1, 0) memo[0] = 1 val = 1 1.upto(N - 1) do |l| val *= (N - l) val %= MOD memo[l] = val end if M == 1 1.upto(N) do |ls| next if K % ls != 0 ans += memo[ls - 1] * N.pow(N - ls, MOD) ans %= MOD end else ans = N.pow(N, MOD) 1.upto(N) do |ls| next if K % ls != 0 ans += -1 * memo[ls - 1] * N.pow(N - ls, MOD) ans %= MOD end ans *= (N - 1).mod_inverse(MOD) ans %= MOD end puts ans