#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,inline,unroll-loops,fast-math")
using namespace std;
int f[5020][5020];
inline int Mod(int x) { return x + ((x >> 31) & 998244353); }
int Power(int x, int y) {
  int o;
  for (o = 1; y; y >>= 1) {
    if (y & 1) o = (long long)o * x % 998244353;
    x = (long long)x * x % 998244353;
  }
  return o;
}
int P(int n, int m) {
  int i, o;
  if (m < 0 || m > n) return 0;
  for (i = o = 1; i <= m; i++) o = (long long)o * (n - i + 1) % 998244353;
  return o;
}
int main(void) {
  int n, m, k;
  int i, j, o;
  cin >> n >> m >> k;
  for (i = f[0][0] = 1; i <= k; i++)
    for (j = 1; j <= i; j++)
      f[i][j] = Mod(f[i - 1][j - 1] + (long long)f[i - 1][j] * j % 998244353 -
                    998244353);
  m = Power(m, 998244353 - 2);
  for (i = o = 0; i <= k; i++)
    o = Mod(o +
            (long long)f[k][i] * P(n, i) % 998244353 * Power(m, i) % 998244353 -
            998244353);
  cout << o << endl;
  return 0;
}
