#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353, mx = 2e4;
int read() {
  int x = 0, f = 1, ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (isdigit(ch)) x = (x << 1) + (x << 3) + ch - '0', ch = getchar();
  return x * f;
}
int n, m, k;
long long fac[20004], inv[20004];
long long pw(long long a, long long b) {
  long long res = 1;
  while (b) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod, b >>= 1;
  }
  return res;
}
int len = 1, l = 0, r[20004];
void NTT(long long *c, int op) {
  for (int i = 1; i <= len; i++)
    if (i < r[i]) swap(c[i], c[r[i]]);
  for (int mid = 1; mid < len; mid <<= 1) {
    long long gn = pw(3, (mod - 1) / (mid << 1));
    if (op == -1) gn = pw(gn, mod - 2);
    for (int ls = 0, L = mid << 1; ls < len; ls += L) {
      long long g = 1;
      for (int k = 0; k < mid; k++, g = g * gn % mod) {
        long long x = c[ls + k], y = c[ls + mid + k] * g % mod;
        c[ls + k] = (x + y) % mod, c[ls + k + mid] = (x - y + mod) % mod;
      }
    }
  }
  if (op == -1) {
    long long rev = pw(len, mod - 2);
    for (int i = 0; i <= len; i++) c[i] = c[i] * rev % mod;
  }
}
long long F[20004], G[20004], ans = 0;
signed main() {
  n = read(), m = read(), k = read();
  fac[0] = inv[0] = 1;
  for (int i = 1; i <= mx; i++) fac[i] = fac[i - 1] * i % mod;
  inv[mx] = pw(fac[mx], mod - 2);
  for (int i = mx - 1; i > 0; i--) inv[i] = inv[i + 1] * (i + 1) % mod;
  for (int i = 0; i <= k; i++) F[i] = pw(i, k) * inv[i] % mod;
  for (int i = 0, kd = 1; i <= k; i++, kd = -kd)
    G[i] = (kd * inv[i] % mod + mod) % mod;
  while (len <= k + k) len <<= 1, l++;
  for (int i = 0; i <= len; i++) r[i] = (r[i >> 1] >> 1) | ((i & 1) << l - 1);
  NTT(F, 1), NTT(G, 1);
  for (int i = 0; i <= len; i++) F[i] = F[i] * G[i] % mod;
  NTT(F, -1);
  for (int i = 0; i <= k; i++) {
    long long res = 1;
    for (int j = n; j > n - i; j--) res = res * j % mod;
    ans = (ans + F[i] * res % mod * pw(pw(m, mod - 2), i) % mod) % mod;
  }
  printf("%lld\n", ans);
  return 0;
}
