def solve(N, K, X): MOD = 10**9 + 7 dp1, dp2 = 1, 0 for i in xrange(N-1): dp1, dp2 = dp2 , dp1 * (K-1) + dp2 * (K-2) dp1 %=MOD; dp2 %=MOD if X == 1: return dp1 return dp2 * pow(K-1 , MOD-2, MOD) % MOD print solve(*map(int, raw_input().split()))