#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long num = 0, neg = 1;
  char c = getchar();
  while (!isdigit(c)) {
    if (c == '-') neg = -1;
    c = getchar();
  }
  while (isdigit(c)) {
    num = (num << 3) + (num << 1) + c - '0';
    c = getchar();
  }
  return num * neg;
}
const long long mod = 998244353;
long long n, m, k, f[5010][5010], ans;
inline long long qpow(long long x, long long k) {
  long long res = 1;
  for (; k; k >>= 1, x = x * x % mod)
    if (k & 1) res = res * x % mod;
  return res;
}
int main() {
  n = read(), m = read(), k = read();
  f[0][0] = 1;
  for (int i = 1; i <= k; i++)
    for (int j = 1; j <= k; j++)
      f[i][j] =
          (f[i - 1][j] * j % mod + f[i - 1][j - 1] * (n - j + 1ll) % mod) % mod;
  for (int j = 1; j <= k; j++)
    ans = (ans + (f[k][j] * qpow(qpow(m, j), mod - 2) % mod)) % mod;
  printf("%lld\n", ans);
  return 0;
}
