#include <bits/stdc++.h>
#define SIZE 100010

using namespace std;
typedef long long ll;

ll dp[SIZE], mod = 1e9 + 7;
long countArray(int n, int k, int x) {
    // Return the number of ways to fill in the array.
    ll prd = 1;
    dp[2] = (x == 1) ? 0 : 1;
    for (int i = 3 ; i <= n ; ++i) {
        prd = (prd * (k - 1)) % mod;
        dp[i] = (prd - dp[i - 1] + mod) % mod;
    }
    return dp[n];
}

int main() {
    int n;
    int k;
    int x;
    cin >> n >> k >> x;
    long answer = countArray(n, k, x);
    cout << answer << endl;
    return 0;
}