#include using namespace std; #define p 1000000007; long long countArray(int n, long long k, int x) { // Return the number of ways to fill in the array. long long fsmall; if(x == 1) fsmall = k-1; else fsmall = k-2; long long power = ((k-1)*(k-1))%p;; long long flarge; if(n==3) return fsmall; for(int i = 4;i<=n;i++){ flarge = (power - fsmall)%p; if(flarge < 0 ) flarge += p; fsmall = flarge; power = (power * (k-1))%p; } return flarge; } int main() { int n; long long k; int x; cin >> n >> k >> x; long long answer = countArray(n, k, x); cout << answer << endl; return 0; }