#!/bin/python3 import sys def countArray(n, k, x): # Return the number of ways to fill in the array. if n == 3: if x == 1: return k - 1 return k - 2 counts = [[-1, -1] for i in range(n)] counts[3][0] = k - 2 counts[3][1] = k - 1 for m in range(4, n): counts[m][0] = ((k - 2) * counts[m - 1][0] + counts[m - 1][1]) % 1000000007 counts[m][1] = ((k - 1) * counts[m - 1][0]) % 1000000007 if x != 1: return ((k - 2) * counts[n - 1][0] + counts[n - 1][1]) % 1000000007 else: return ((k - 1) * counts[n - 1][0]) % 1000000007 if __name__ == "__main__": n, k, x = input().strip().split(' ') n, k, x = [int(n), int(k), int(x)] answer = countArray(n, k, x) print(answer)