long long modPow(longlongbase, longlongexp, intmod) { long long result = 1; while (exp > 0) { if (exp % 2) result = result * base % mod; base = base * base % mod; exp /= 2; } return result; }
long long modInverse(longlonga, intmod) { return modPow(a, mod - 2, mod); }
int countGoodArrays(intn, intm, intk) { long long ans = m, res = 1;
for (int i = n - 1; i >= n - k; i--) { ans = ans * i % mod; }
for (int i = 1; i <= k; i++) { res = res * i % mod; }
ans = ans * modInverse(res, mod) % mod;
for (int i = 0; i < (n - 1 - k); i++) { ans = ans * (m - 1) % mod; }