#include <bits/stdc++.h>
using namespace std;
long long int n, bigmod = 998244353, memo[5005][5005];
long long int dp(long long int i, long long int j) {
  long long int ret, temp;
  if (i == 0) return ((j == 0) ? 1 : 0);
  if (memo[i][j] != -1) return memo[i][j];
  ret = (dp(i - 1, j - 1) * (n - j + 1)) % bigmod;
  temp = (dp(i - 1, j) * j) % bigmod;
  ret = (ret + temp) % bigmod;
  memo[i][j] = ret;
  return ret;
}
long long int exp(long long int a, long long int b) {
  long long int ret;
  if (b == 0) return 1;
  ret = exp(a, b / 2);
  ret = (ret * ret) % bigmod;
  if (b & 1) ret = (ret * a) % bigmod;
  return ret;
}
int main() {
  long long int m, k, ans = 0, temp;
  scanf("%lld %lld %lld", &n, &m, &k);
  memset(memo, -1, sizeof memo);
  for (long long int i = 1; i <= k; i++) {
    temp = exp(m, i);
    temp = exp(temp, bigmod - 2);
    temp = (temp * dp(k, i)) % bigmod;
    ans = (ans + temp) % bigmod;
  }
  printf("%lld\n", ans);
  return 0;
}
