#include using namespace std; #define modulus 1000000007 template T modpow(T base, T exp) { base %= modulus; T result = 1; while (exp > 0) { if (exp & 1) result = (result * base) % modulus; base = (base * base) % modulus; exp >>= 1; } return result; } long long int countArray(long long int n,long long int k,long long int x) { // Return the number of ways to fill in the array. if(n==3){ if(x!=1){return k-2;} if(x==1){return k-1;} } long long ans=modpow((k-1),(n-2)); ans=(ans-countArray(n-1,k,x)) % modulus; if(ans<0){ans+=modulus;} return ans; } int main() { long long int n; long long int k; long long int x; cin >> n >> k >> x; long long int answer = countArray(n, k, x); cout << answer << endl; return 0; }