#include <bits/stdc++.h>
using namespace std;
const uint64_t N = 1e6 + 6, M = 998244353;
uint64_t f[N] = {1};
uint64_t p(uint64_t a, uint64_t b) {
  uint64_t r = 1;
  while (b) {
    if (b % 2) r = (r * a) % M;
    a = (a * a) % M;
    b /= 2;
  }
  return r;
}
int main() {
  ios::sync_with_stdio(false), cin.tie(nullptr);
  for (uint64_t i = 1; i < N; i++) f[i] = (f[i - 1] * i) % M;
  uint64_t n, m, k;
  cin >> n >> m >> k;
  cout << (((f[n - 1] * (p(f[k], M - 2) * p(f[n - 1 - k], M - 2) % M)) % M) *
           ((m * p(m - 1, k)) % M)) %
              M;
  return 0;
}
