#include using namespace std; typedef unsigned int ui; typedef unsigned long long ul; typedef long long sl; ul m = 1000000007; int main(int argc, char* argv[]) { ios_base::sync_with_stdio(false); ul n, k, x; cin >> n >> k >> x; ul kk = k - 1, s = kk, q = 1, c = 0, r = kk; for (ul i = 2; i < n; ++i) { r = (r * kk) % m; ul t = s, cq = q; q = s - q + c; s = ((s - cq + c) * kk) % m; c = t; } if (x == 1) r = (r + m - s) % m; else r = (r + m - (s - q + c)) % m; cout << r << endl; return 0; }