#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;   }   