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