#include using namespace std; const int mod = 1000000007; const int N = 100005; long long f[N], g[N]; long long countArray(int n, int k, int x) { f[1] = 1; g[1] = 0; for (int i = 2; i <= n; i++) { f[i] = (k-1) * g[i-1] % mod; g[i] = (k-2) * g[i-1] % mod + f[i-1]; if (g[i] >= mod) g[i] -= mod; } if (x == 1) return f[n]; else return g[n]; } int main() { int n; int k; int x; cin >> n >> k >> x; long long answer = countArray(n, k, x); cout << answer << endl; return 0; }