#!/bin/python3 import sys def countArray(n, k, x): # Return the number of ways to fill in the array. limit = 10 ** 9 + 7 same = [0] * (n - 1) diff = [0] * (n - 1) same[1] = k - 1 diff[1] = k - 2 for i in range(2, n - 1): same[i] = ((k - 1) * diff[i - 1]) % limit diff[i] = (same[i - 1] + diff[i - 1] * (k - 2)) % limit if x == 1: return same[n - 2] else: return diff[n - 2] 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)