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()))