#pragma GCC optimize ("O3")
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;

long long MODLE=998244353;
long long dp[1000002];


int main(){

    long long n,m,k,ans=1;
    cin>>n>>m>>k;
    if(k==1){
        for(int i=0;i<n;i++)ans=(ans*m)%MODLE;
        cout<<ans<<endl;
    }else{
        dp[0]=0;
        dp[1]=1;
        dp[2]=2;
        long long sum=1;
        for(int i=3;i<=n;i++){
            dp[i]=m*(dp[i-1]+(m-1)*dp[i-2]);

        }
        cout<<dp[n];
    }


    return 0;
}

