#include using namespace std; typedef long long ll; const int mod = 1000000007; int Inv(int a) { int res = 1; int p = mod - 2; while (p) { if (p & 1) res = ll(res) * a % mod; p >>= 1; a = ll(a) * a % mod; } return res; } int main() { int n; int k; int x; cin >> n >> k >> x; int res1 = 1, res0 = 0; for (int i = 1; i < n; i++) { int nres1 = res0; int nres0 = (ll(res1) * (k - 1) + ll(res0) * (k - 2)) % mod; res1 = nres1; res0 = nres0; } if (x == 1) printf("%d\n", res1); else { int res = ll(res0) * Inv(k - 1) % mod; printf("%d\n", res); } return 0; }