#include using namespace std; /*int ar[100000][2]; long long countArray(int n, int k, int x) { long long g=1; g=countArray(n-1,k,x,0)*(k-2)+countArray(n-1,k,x,1)*(k-1); return g; // Return the number of ways to fill in the array. }*/ int main() { int n,i; int k; int x; cin >> n >> k >> x; long long int ar[n+1][2]; if(x==1) { ar[2][0]=k-1; ar[2][1]=0; } else { ar[2][0]=k-2; ar[2][1]=1; } for(i=3;i<=n;i++) { ar[i][0]=(ar[i-1][0]*(k-2)+ar[i-1][1]*(k-1))%1000000007; ar[i][1]=ar[i-1][0]; } cout << ar[n][1] << endl; return 0; }