#include<bits/stdc++.h>

using namespace std;

typedef long long ll;
const int N=2e5+100;
int mod=998244353;

ll fac[N],inv[N];
int n,m,k;
ll qpow(ll x,ll n)
{
    //if(x==0) return 0;
    x%=mod;
    ll sum=1;
    while(n){
        if(n&1) sum=sum*x%mod;
        x=x*x%mod;
        n>>=1;
    }
    return sum;
}
void init()
{
    fac[0]=1;
    for(int i=1;i<=N-1;i++) fac[i]=fac[i-1]*i%mod;
    inv[N-1]=qpow(fac[N-1],mod-2);
    for(int i=N-2;i>=0;i--) inv[i]=inv[i+1]*(i+1)%mod;
}
ll get(int x,int y)
{
    return fac[x]*inv[y]%mod*inv[x-y]%mod;
}
int main()
{
    scanf("%d%d%d",&n,&m,&k);
    init();
    ll ans=0;
    for(int i=0;i<=k;i++)
        ans=(ans+m*get(n-1,i)%mod*qpow(m-1,n-1-i))%mod;
    printf("%lld\n",ans);
    return 0;
}

