#include using namespace std; const int N = 1e5 + 5; const int M = 1e9 + 7; int n, k, x, f[N]; int main() { scanf("%d%d%d", &n, &k, &x); f[3] = x == 1 ? k - 1 : k - 2; long long b = (k - 1); for (int i = 4; i <= n; ++i) { b *= (k - 1); b %= M; f[i] = (b - f[i - 1]) % M; } int ans = f[n]; if (ans < 0) ans += M; cout << ans << endl; }