// AtCoder template
// 最近sabaがかまってくれないからキレて暴れてる
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i,n) for(int i = 0; i < n; ++i)

const ll MOD = 998244353;
ll comb[2*100001];

template<class T>
T pow(long long a, long long b, T mod){
    if(b == 0) return 1;
    if(b % 2 == 0){
        T d = pow(a,b/2,mod);
        return (d*d)%mod;
    }else return a%mod*pow(a,b-1,mod)%mod;
}

int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);

    ll n,m,k; cin >> n >> m >> k;

    // 前計算
    comb[0] = 1LL;
    rep(i,n-1){
        comb[i+1] = ((comb[i]*(n-1-i)%MOD)*pow(i+1,MOD-2,MOD))%MOD;
    }

    ll ans = 0LL;
    for(ll i = 0LL; i <= k; ++i){
        ans = (ans + (((m*pow(m-1,n-i-1,MOD))%MOD)*comb[i])%MOD)%MOD;
    }

    cout << ans << endl;
}