#include <bits/stdc++.h>
using namespace std;
int read();
const int N = 5005, P = 998244353;
int n, m, K;
int S[N][N];
int qpow(int x, int b, int res = 1) {
  for (; b; b >>= 1, x = 1ll * x * x % P)
    if (b & 1) res = 1ll * res * x % P;
  return res;
}
int main() {
  n = read(), m = read(), K = read();
  S[0][0] = 1;
  for (int i = 1; i <= K; ++i)
    for (int j = 1; j <= i; ++j)
      S[i][j] = (1ll * j * S[i - 1][j] + S[i - 1][j - 1]) % P;
  int ans = 0, p = qpow(m, P - 2);
  for (int i = 0, ns = 1; i <= K; ++i) {
    ans = (ans + 1ll * S[K][i] * ns % P * qpow(p, i)) % P;
    ns = 1ll * ns * (n - i) % P;
  }
  printf("%d\n", ans);
  return 0;
}
int read() {
  int x = 0, f = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9')
    x = (x << 3) + (x << 1) + (c ^ 48), c = getchar();
  return f * x;
}
