#include <bits/stdc++.h>

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;
}