#include #include using namespace std; long countArray(int n, int k, int x) { long res = (long)k-1; // if (x == 1 && n == 2) { // res--; //} long a = 1; long b = 0; long resA = res - a; long resB = res - b; for (int i = 3; i <= n-1; i++) { res *= ((long)k-1); long newA = ((a * ((long)k - 2))% 1000000007) + b; long newB = a * ((long)k - 1); a = newA % 1000000007; b = newB % 1000000007; resA = res - a; resB = res - b; res %= 1000000007; // cout << a << " " << b << endl; } if (x == 1 ) { return resB % 1000000007; } else { return resA % 1000000007; } /* if (n > 3) { res *= ((long)k-1); res %= 1000000007; if (x == 1) { res -= res/k; } else { res -= } } */ // return res; } int main() { int n; int k; int x; cin >> n >> k >> x; long answer = countArray(n, k, x); cout << answer << endl; return 0; }