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