#include <iostream>
#include <map>
#include <utility>
using namespace std;
#define int long long
#define DEBUG(x) cerr << #x << " = " << x << endl
int MOD = 998244353;
int power(int x, int y) {
  int res = 1;
  for(; y > 0; y >>= 1, (x *= x) %= MOD) {
    if(y & 1) (res *= x) %= MOD;
  }
  return res;
}
int extgcd(int a, int b, int &x, int &y) {
  int d = a;
  if (b != 0) {
    d = extgcd(b, a % b, y, x);
    y -= (a / b) * x;
  } else {
    x = 1; y = 0;
  }
  return d;
}
int mod_inv(int a, int m) {
  int x, y;
  extgcd(a, m, x, y);
  return (m + x % m) % m;
}
int fact[200001];
void prepare(const int N) {
  fact[0] = 1;
  for(int i = 1; i <= N; i++) {
    fact[i] = fact[i - 1] * i;
    fact[i] %= MOD;
  }
}
int comb(const int n, const int k) {
  int r = fact[n];
  r *= mod_inv(fact[n - k], MOD);
  r %= MOD;
  r *= mod_inv(fact[k], MOD);
  r %= MOD;
  return r;
}
signed main() {
  int N, M, K; cin >> N >> M >> K;
  int ans = 0;
  prepare(N);
  for (int k = 0; k <= K; k++) {
    int r = M * comb(N - 1, k);
    r %= MOD;
    r *= power(M - 1, N - 1 - k);
    r %= MOD;
    ans += r;
    ans %= MOD;
  }
  cout << ans << endl;
}
