#include <bits/stdc++.h>
using namespace std;
int dp[2][5002];
void compDp(int n, int k) {
  dp[0][0] = 1;
  for (int i = 1, t = 1; i <= k; ++i, t = !t) {
    memset(dp[t], 0, sizeof(dp[t]));
    for (int j = 1; j <= n && j <= i; ++j)
      dp[t][j] =
          (1LL * dp[!t][j] * j + 1LL * dp[!t][j - 1] * (n - j + 1)) % 998244353;
  }
}
int invMod(int x) {
  int p = 998244353 - 2, ret = 1;
  for (int i = 0; (1 << i) < p; ++i, x = (1LL * x * x) % 998244353)
    if (p & (1 << i)) ret = (1LL * ret * x) % 998244353;
  return ret;
}
int main() {
  int n, m, k;
  scanf("%d%d%d", &n, &m, &k);
  compDp(n, k);
  int divm = invMod(m);
  int crtPow = divm;
  int ans = 0;
  for (int i = 1; i <= n && i <= k; ++i) {
    ans = (1LL * crtPow * dp[k & 1][i] + ans) % 998244353;
    crtPow = (1LL * crtPow * divm) % 998244353;
  }
  printf("%d\n", ans);
  return 0;
}
