#include #include #include #include #include #include #include long int countArray(int n, long long int k, int x) { if (n == 3) { if(x==1) { return k-1; } else return k-2; } else { long long int ans = 1; int i; for(i=1;i<=n-3;i++) { ans = (ans*(k-1))%(1000000007); } if(x > k) ans = (ans*(k-2))%1000000007; else { if(ans%k==0 || (k-1)%k ==0 ) ans = ((ans*(k-1)*(k-1))/k)%1000000007; else ans = ((ans*(k-1)*(k-1))/k + 1)%1000000007; } return ans; } // Return the number of ways to fill in the array. } int main() { int n; long long int k; int x; scanf("%i %lld %i", &n, &k, &x); long int answer = countArray(n, k, x); if (answer < 0) answer = 0; printf("%ld\n", answer); return 0; }