#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + 5;
long long mod = 998244353;
long long p[5010][5010];
void init() {
  p[0][0] = p[1][1] = 1;
  for (int i = 2; i <= 5000; i++)
    for (int j = 1; j <= i; j++)
      p[i][j] = (p[i - 1][j - 1] + j * p[i - 1][j]) % mod;
}
long long power(long long x, long long y) {
  long long res = 1;
  while (y) {
    if (y & 1) res = (res * x) % mod;
    x = x * x % mod;
    y >>= 1;
  }
  return res;
}
int main() {
  init();
  long long n, m, k;
  while (~scanf("%lld%lld%lld", &n, &m, &k)) {
    long long q = 1, ans = 0;
    long long inv = power(m, mod - 2);
    long long c = 1;
    for (int i = 0; i <= min(n, k); i++) {
      ans = (ans + p[k][i] * c % mod * q % mod) % mod;
      q = q * inv % mod;
      c = c * (n - i) % mod;
    }
    cout << ans << endl;
  }
}
