#!/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