#include <bits/stdc++.h>
using namespace std;
void solve();
mt19937 rnd(2007);
signed main() {
  mt19937 rrnd(
      std::chrono::high_resolution_clock::now().time_since_epoch().count());
  swap(rrnd, rnd);
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  solve();
}
const long long mod = 998244353;
long long binpow(long long a, long long n) {
  long long res = 1;
  while (n) {
    if (n & 1) {
      res *= a;
      res %= mod;
    }
    a *= a;
    a %= mod;
    n >>= 1;
  }
  return res;
}
void solve() {
  long long n, m, k;
  cin >> n >> m >> k;
  long long ans = m;
  for (long long(qwe) = 0; (qwe) < (k); ++(qwe)) {
    ans *= m - 1;
    ans %= mod;
  }
  for (long long(i) = 0; (i) < (n - 1); ++(i)) {
    ans *= i + 1;
    ans %= mod;
  }
  for (long long(i) = 0; (i) < (n - k - 1); ++(i)) {
    ans *= binpow(i + 1, mod - 2);
    ans %= mod;
  }
  for (long long(i) = 0; (i) < (k); ++(i)) {
    ans *= binpow(i + 1, mod - 2);
    ans %= mod;
  }
  cout << ans << '\n';
}
