#include <iostream>
#include <cstdio>
#define N 200005
using namespace std;

typedef long long ll;
ll M = 998244353;
ll n, m, k, s, fac[N] = {1, 1}, fiv[N] = {1, 1}, inv[N] = {1, 1}, sq[N] = {1};
ll f(ll p, ll q) {
	ll t, r1, r2;
	t = p + q - 1;
	r1 = (sq[p - 1] * m) % M;
	r2 = ((fac[t] * fiv[t - q] % M) * fiv[q]) % M;
	return (r1 * r2) % M;
}

int main()
{
	ll i;
	cin >> n >> m >> k;
	sq[1] = m - 1;
	for(i=2; i<=n; i++) {
		fac[i] = fac[i-1] * i % M;
		inv[i] = inv[M%i] * (M-M/i) % M;
		fiv[i] = fiv[i-1] * inv[i] % M;
		sq[i] = sq[i - 1] * (m - 1) % M;
	}
	for (i = 0; i <= k; i++) {
		s = (s + f(n - i, i)) % M;
	}
	cout << s << endl;
    return 0;
}
