#include<bits/stdc++.h>
#define lli long long int
using namespace std;
const lli MAXN=1000005, MOD=998244353;
lli N, M, K, dp[MAXN][2];
lli f(lli ost, int ok){
    if(ost<0)return 0;
    if(ost==0 and ok==0)return 0;
    else if(ost==0){
        return 1;
    }
    if(dp[ost][ok]!=0)return dp[ost][ok];
    lli ans=0, umn;
    if(ost==N)umn=M;
    else umn=M-1;
    for(lli i=1; i<K; i++){
        ans=(ans+(f(ost-i, ok)*umn))%MOD;
    }
    for(lli i=K; i<=N and i<=ost; i++){
        ans=(ans+(f(ost-i, 1)*umn))%MOD;
    }
    dp[ost][ok]=ans%MOD;
    return dp[ost][ok];
}
int main() {
    cin>>N>>M>>K;
    cout<<f(N, 0)<<endl;
    return 0;
}
