#include using namespace std; const int MOD = 1e9 + 7; long countArray(int n, int k, int x) { // Return the number of ways to fill in the array. long long dp[2][n+1]; dp[0][1] = 1; dp[1][1] = 0; for(int i = 2; i <= n; i++){ dp[0][i] = (k-1)*dp[1][i-1]; dp[0][i] %= MOD; dp[1][i] = (k-2)*dp[1][i-1] + dp[0][i-1]; dp[1][i] %= MOD; } if(x == 1)return dp[0][n]; return dp[1][n]; } int main() { int n; int k; int x; cin >> n >> k >> x; long answer = countArray(n, k, x); cout << answer << endl; return 0; }