#include <bits/stdc++.h>
using namespace std;

const int mod = 998244353;
const int maxF = 200005;

int P(int a, int b) {
	if(b == 0) return 1;
	if(b & 1) return (long long)P(a, b - 1) * a % mod;
	long long t = P(a, b / 2);
	return t * t % mod;
}

int D(int a, int b) {
	return (long long)a * P(b, mod - 2) % mod;
}

int FC[maxF] = {1}, FDG = 0;
int F(int a) {
	while(FDG < a) {
		++FDG, FC[FDG] = (long long)FC[FDG - 1] * FDG % mod;
	}
	return FC[a];
}

int C(int a, int b) {
	return D(F(a), (long long)F(b) * F(a - b) % mod);
}

int n, m, k, fp;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin >> n >> m >> k;
	for(int i = 0; i <= k; ++i) {
		(fp += (long long)C(n - 1, i) * P(m - 1, n - 1 - i) % mod) %= mod;
	}
	fp = (long long)fp * m % mod;
	cout << fp << endl;
	return 0;
}
