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

const int MAX_N = 2e5+2;
const int MOD = 998244353;
int N,M,K;
ll fact[MAX_N], invf[MAX_N];

ll powmod(ll x, ll y)
{
	ll res = 1;
	while(y){
		if(y&1) (res*=x)%=MOD;
		(x*=x)%=MOD;
		y>>=1;
	}
	return res;
}

ll nChoosek(int n, int k)
{
	return (fact[n]*invf[n-k])%MOD*invf[k]%MOD;
}

void solve()
{
	fact[0]=1;
	for(int i=1;i<MAX_N;++i) fact[i]=1LL*i*fact[i-1]%MOD;
	invf[MAX_N-1]=powmod(fact[MAX_N-1],MOD-2);
	for(int i=MAX_N-2;i>=0;--i) invf[i]=(i+1)*invf[i+1]%MOD;
	
	ll tot = 0;
	for(int p=N-K;p<=N;++p){
		(tot += nChoosek(N-1,p-1)*M%MOD*powmod(M-1,p-1)%MOD)%=MOD;
	}
	cout << tot << '\n';
}

int main()
{
	cin >> N >> M >> K;
	solve();
	return 0;
}