#include using namespace std; #define MOD 1000000007L long countArray(int n, int k, int x) { long res = (k - 1) % MOD; // how many don't start with 1 long tail = x == 1 ? 0 : 1; // how many of res end with x //std::cerr << "res=" << res << " tail=" << tail << std::endl; for (int i = 1; i < n-2; ++i) { // tail of res end with x, they won't after this step // but that means res-tail will now get an end with x tail = (res + MOD - tail) % MOD; res *= k - 1; res %= MOD; //std::cerr << "res=" << res << " tail=" << tail << std::endl; } // remove any that happen to end with x return (res + MOD - tail) % MOD; } int main() { int n; int k; int x; cin >> n >> k >> x; long answer = countArray(n, k, x); cout << answer << endl; return 0; }