#include using namespace std; const long long md = 1000000007ll; int main() { long long n, k, x, pk1 = 1, ret=0; cin >> n >> k >> x; vector v(n+1); pk1 = k-1; v[1] = (x==1 ? k-1 : k-2); for(int i=2; i<=n-2; i++){ pk1 = (pk1 * (k-1)) % md; v[i] = (pk1 + md - v[i-1]) % md; } cout << v[n-2] << endl; return 0; }