#include <bits/stdc++.h>
using namespace std;
const unsigned long long MOD = 998244353;
const unsigned long long INF = 1000000000;
unsigned long long modpow(unsigned long long a, unsigned long long b) {
  unsigned long long res = 1;
  while (b) {
    if (b & 1) res = (res % MOD * a % MOD) % MOD, res %= MOD;
    a = a % MOD * a % MOD;
    b >>= 1;
  }
  return res % MOD;
}
unsigned long long nCk(unsigned long long n, unsigned long long r) {
  if (r == 0) return 1;
  unsigned long long fac[n + 1];
  fac[0] = 1;
  for (unsigned long long i = 1; i <= n; i++) fac[i] = fac[i - 1] * i % MOD;
  return (fac[n] * modpow(fac[r], MOD - 2) % MOD * modpow(fac[n - r], MOD - 2) %
          MOD) %
         MOD;
}
signed main() {
  cin.tie(0), cout.tie(0);
  ios::sync_with_stdio(0);
  unsigned long long n, m, k;
  cin >> n;
  cin >> m;
  cin >> k;
  if (k == 0) return cout << m << endl, 0;
  unsigned long long res =
      (nCk(n - 1, k) % MOD * m % MOD * modpow(m - 1, k) % MOD) % MOD;
  res %= MOD;
  return cout << res % MOD << endl, 0;
}
