import sys

read = sys.stdin.read

readline = sys.stdin.readline

readlines = sys.stdin.readlines



# 0^0 = 1



def main():

    N,M,K = list(map(int, readline().split()))



    MOD = 998244353



    if M == 1:

        if K == N - 1:

            print((1))

        else:

            print((0))

        exit()



    m = pow(M-1, N-1, MOD)

    m_1_inv = pow(M-1, MOD-2, MOD)

    comb = 1

    ans = comb * m

    for k in range(1,K+1):

        m *= m_1_inv

        m %= MOD

        comb *= N - k

        comb %= MOD

        comb *= pow(k, MOD-2, MOD)

        

        ans += (m * comb) % MOD

        ans %= MOD



    print((ans * M % MOD))





if __name__ == "__main__":

    main()

import sys

read = sys.stdin.read

readline = sys.stdin.readline

readlines = sys.stdin.readlines



fac = [1, 1]     # 元テーブル

f_inv = [1, 1]   # 逆元テーブル

inv = [0, 1]     # 逆元テーブル計算用テーブル



def prepare(n, mod):

    for i in range(2, n+1):

        fac.append((fac[-1] * i) % mod)

        inv.append((-inv[mod % i] * (mod//i)) % mod)

        f_inv.append((f_inv[-1] * inv[-1]) % mod)



def cmb(n, r, mod):

    if n < 0 or r < 0:

        return 0

    if r > n:

        return 0



    return fac[n] * f_inv[r] * f_inv[n-r] % mod





def main():

    N,M,K = list(map(int, readline().split()))



    MOD = 998244353



    if M == 1:

        if K == N - 1:

            print((1))

        else:

            print((0))

        exit()

    

    prepare(N + 10, MOD)



    m = pow(M-1, N-1, MOD)

    m_inv = pow(M-1, MOD-2, MOD)

    ans = 0

    for k in range(K+1):

        ans += (cmb(N-1, k, MOD) * m) % MOD

        ans %= MOD



        m *= m_inv

        m %= MOD



    print((ans * M % MOD))





if __name__ == "__main__":

    main()

import sys

read = sys.stdin.read
readline = sys.stdin.readline
readlines = sys.stdin.readlines
# 0^0 = 1
def main():
    N, M, K = list(map(int, readline().split()))
    MOD = 998244353
    if M == 1:
        if K == N - 1:
            print((1))
        else:
            print((0))
        exit()
    m = pow(M - 1, N - 1, MOD)
    m_1_inv = pow(M - 1, MOD - 2, MOD)
    comb = 1
    ans = comb * m
    for k in range(1, K + 1):
        m *= m_1_inv
        m %= MOD
        comb *= N - k
        comb %= MOD
        comb *= pow(k, MOD - 2, MOD)
        ans += (m * comb) % MOD
        ans %= MOD
    print((ans * M % MOD))


if __name__ == "__main__":
    main()

import sys

read = sys.stdin.read
readline = sys.stdin.readline
readlines = sys.stdin.readlines
fac = [1, 1]  # 元テーブル
f_inv = [1, 1]  # 逆元テーブル
inv = [0, 1]  # 逆元テーブル計算用テーブル


def prepare(n, mod):
    for i in range(2, n + 1):
        fac.append((fac[-1] * i) % mod)
        inv.append((-inv[mod % i] * (mod // i)) % mod)
        f_inv.append((f_inv[-1] * inv[-1]) % mod)


def cmb(n, r, mod):
    if n < 0 or r < 0:
        return 0
    if r > n:
        return 0
    return fac[n] * f_inv[r] * f_inv[n - r] % mod


def main():
    N, M, K = list(map(int, readline().split()))
    MOD = 998244353
    if M == 1:
        if K == N - 1:
            print((1))
        else:
            print((0))
        exit()
    prepare(N + 10, MOD)
    m = pow(M - 1, N - 1, MOD)
    m_inv = pow(M - 1, MOD - 2, MOD)
    ans = 0
    for k in range(K + 1):
        ans += (cmb(N - 1, k, MOD) * m) % MOD
        ans %= MOD
        m *= m_inv
        m %= MOD
    print((ans * M % MOD))


if __name__ == "__main__":
    main()

-# 0^0 = 1 +fac = [1, 1]  # 元テーブル +f_inv = [1, 1]  # 逆元テーブル +inv = [0, 1]  # 逆元テーブル計算用テーブル + + +def prepare(n, mod): +    for i in range(2, n + 1): +        fac.append((fac[-1] * i) % mod) +        inv.append((-inv[mod % i] * (mod // i)) % mod) +        f_inv.append((f_inv[-1] * inv[-1]) % mod) + + +def cmb(n, r, mod): +    if n < 0 or r < 0: +        return 0 +    if r > n: +        return 0 +    return fac[n] * f_inv[r] * f_inv[n - r] % mod + + +    prepare(N + 10, MOD) -    m_1_inv = pow(M - 1, MOD - 2, MOD) -    comb = 1 -    ans = comb * m -    for k in range(1, K + 1): -        m *= m_1_inv +    m_inv = pow(M - 1, MOD - 2, MOD) +    ans = 0 +    for k in range(K + 1): +        ans += (cmb(N - 1, k, MOD) * m) % MOD +        ans %= MOD +        m *= m_inv -        comb *= N - k -        comb %= MOD -        comb *= pow(k, MOD - 2, MOD) -        ans += (m * comb) % MOD -        ans %= MOD