#include <bits/stdc++.h>
using namespace std;
long long const mod = 998244353, INF = 1e7, N = 5002;
void speedup() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
long long dp[N][N];
long long mult(long long x, long long y) { return (x * y) % mod; }
long long bin_pow(long long x, long long p) {
  if (p == 0) return 1;
  if (p & 1) return mult(x, bin_pow(x, p - 1));
  return bin_pow(mult(x, x), p / 2);
}
long long inv(long long x) { return bin_pow(x, mod - 2); }
void solve() {
  long long n, m, k;
  cin >> n >> m >> k;
  dp[0][0] = 1;
  for (long long i = 0; i <= k; ++i) {
    for (long long j = 0; j <= k; ++j) {
      dp[i + 1][j + 1] = (dp[i + 1][j + 1] + mult(dp[i][j], (n - j))) % mod;
      dp[i + 1][j] = (dp[i + 1][j] + mult(dp[i][j], j)) % mod;
    }
  }
  long long invm = inv(m), ans = 0;
  for (long long i = 1; i <= k; i++)
    ans = (ans + mult(dp[k][i], bin_pow(invm, i))) % mod;
  cout << ans;
}
signed main() {
  speedup();
  solve();
  return 0;
}
