#!/bin/python

MOD_NUM = 10**9 + 7

import sys

num_ways_1 = [0 for i in range(10**5)]
num_ways_x = [0 for i in range(10**5)]

def countArray(n, k, x):
    # Return the number of ways to fill in the array.
    num_ways_1[0] = 1
    num_ways_x[0] = 0
    for i in range(1, n):
        num_ways_1[i] = (k-1)*num_ways_x[i-1] % MOD_NUM
        num_ways_x[i] = (num_ways_1[i-1] + (k-2)*num_ways_x[i-1]) % MOD_NUM
    
    if x == 1:
        return num_ways_1[n-1]
    else:
        return num_ways_x[n-1]

if __name__ == "__main__":
    n, k, x = raw_input().strip().split(' ')
    n, k, x = [int(n), int(k), int(x)]
    answer = countArray(n, k, x)
    print answer