#include <bits/stdc++.h>
using namespace std;
const long long mod=998244353;
long long n,m,k;
long long ans;
long long f[200005],r[200005];
inline long long Pow(long long a,long long b){
	long long res=1;
	while(b){
		if(b&1){
			res*=a;
			res%=mod;
		}
		a*=a;
		a%=mod;
		b>>=1;
	}
	return res;
}
inline long long C(int n,int k){
	return f[n]*r[k]%mod*r[n-k]%mod;
}
int main(){
	cin>>n>>m>>k;
	f[0]=1;
	for(int i=1;i<=n;++i){
		f[i]=f[i-1]*i%mod;
	}
	r[n]=Pow(f[n],mod-2);
	for(int i=n;i>0;--i){
		r[i-1]=r[i]*i%mod;
	}
	for(long long i=0;i<=k;++i){
		long long res=1;
		res*=m;
		res*=C(n-1,i);
		res%=mod;
		res*=Pow(m-1,n-1-i);
		res%=mod;
		ans+=res;
		if(ans>=mod){
			ans-=mod;
		}
	}
	cout<<ans<<'\n';
	return 0;
} 