#include <bits/stdc++.h>
using namespace std;
int dp[5005][5005];
int po(int b, int e) {
  int p = 1;
  while (e) {
    if (e % 2 == 1) p = 1LL * p * b % 998244353, e--;
    b = 1LL * b * b % 998244353;
    e = e / 2;
  }
  return p;
}
int main() {
  int n, m, k, i, j;
  scanf("%d%d%d", &n, &m, &k);
  dp[0][0] = 1;
  for (i = 0; i < k; i++)
    for (j = 0; j < k; j++) {
      dp[i + 1][j] =
          (dp[i + 1][j] + 1LL * dp[i][j] * j % 998244353) % 998244353;
      dp[i + 1][j + 1] =
          (dp[i + 1][j + 1] + 1LL * dp[i][j] * (n - j) % 998244353) % 998244353;
    }
  int rasp = 0;
  for (i = 1; i <= k; i++)
    rasp = (rasp + 1LL * dp[k][i] * po(po(m, 998244353 - 2), i) % 998244353) %
           998244353;
  printf("%d\n", rasp);
  return 0;
}
