#include using namespace std; long p = 1000000007; long countArray(int n, int k, int x) { vector one(n+1); vector X(n+1); one[3] = k-1; X[3] = k-2; for(int i = 4; i <= n; i++) { one[i] = ((k-1) * X[i-1])%p; X[i] = (one[i-1] + ((k-2)*X[i-1])%p)%p; } if(x == 1) return one[n]; return X[n]; } int main() { int n; int k; int x; cin >> n >> k >> x; long answer = countArray(n, k, x); cout << answer << endl; return 0; }