#include <bits/stdc++.h>
const int MAXK = 5500;
const int P = 998244353;
int qpow(int n, int k) {
  if (k < 0) return 0;
  int r = 1;
  while (k) {
    if (k & 1) r = 1ll * r * n % P;
    n = 1ll * n * n % P;
    k >>= 1;
  }
  return r;
}
int s[MAXK];
int main() {
  int n, m, k;
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 1; i <= k; i++) {
    s[i] = 1;
    for (int j = i - 1; j >= 1; j--) s[j] = (1ll * j * s[j] + s[j - 1]) % P;
  }
  int ans = 0;
  for (int i = 0, t = 1; i <= k; i++) {
    ans = (ans + 1ll * s[i] * t % P * qpow(m, n - i)) % P;
    t = 1ll * t * (n - i) % P;
  }
  ans = 1ll * ans * qpow(qpow(m, n), P - 2) % P;
  printf("%d\n", ans);
  return 0;
}
