#include <iostream>
#define ull unsigned long long
#define rem 998244353
using namespace std;

ull f(ull a, ull b) {
    ull p = 1;
    for (ull i = a; i > b; i--)
        p = p * (ull)i;
    return p;
}

ull fact(ull n) {
    ull p = 1, i;
    for (i = 0; i < n; i++) {
        p = p * (ull)n;
    }
    return p;
}

int main() {
    ull N, K, M;
    ull ans = 1;
    cin >> N >> M >> K;
    if (N - K > K)
        ans = (f(N, N - K) / fact(K)) * (ull)M;
    else
        ans = (f(N, K) / fact(N - K)) * (ull)M;
    cout << ans % rem << endl;
    return 0;
}