#include<bits/stdc++.h>
using namespace std;
int64_t mod=998244353;
int64_t pw(int64_t x,int64_t y){
  int64_t z;
  if(y==0) return 1;
  else{
    z=pw(x,y/2)*pw(x,y/2)%mod;
    if(y%2==1) z=z*x%mod;
    return z;
  }
}
int main(){
  int64_t n,m,k,i,l,ans=0;
  cin>>n>>m>>k;
  vector<int64_t> mp(n),fa(n),fi(n);
  mp.at(0)=1; fa.at(0)=1; fi.at(0)=1;
  for(i=1;i<n;i++){
    mp.at(i)=mp.at(i-1)*(m-1)%mod;
    fa.at(i)=fa.at(i-1)*i%mod;
    fi.at(i)=fi.at(i-1)*pw(i,mod-2)%mod;
  }
  for(i=0;i<=k;i++){
    l=fa.at(n-1)*fi.at(i)%mod;
    l=l*fi.at(n-1-i)%mod;
    l=l*mp.at(n-1-i)%mod;
    ans=(ans+l)%mod;
//    ans+=(ans+fa.at(n-1)*fi.at(i)*fi.at(n-1-i)*mp.at(n-1-i))%mod;
  }
  ans=ans*m%mod;
  cout<<ans<<endl;
}