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



mod = 998244353



ans = 0



class Combination:

    def __init__(self, n):

        self.facts = [1 for i in range(N+1)]

        self.invs = [1 for i in range(N+1)]

        

        for i in range(1, N+1):

            self.facts[i] = self.facts[i-1] * i % mod

            self.invs[i] = pow(self.facts[i], mod-2, mod)



    def ncr(self, n, r):

        return self.facts[n] * self.invs[r] * self.invs[n-r] % mod



comb = Combination(N)



for i in range(K+1):

    d = M * pow(M-1, N-i-1, mod) * comb.ncr(N-1, i)

    ans = (ans + d % mod) % mod



print(ans)

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



mod = 998244353



ans = 0



class Combination:

    def __init__(self, n):

        self.facts = [1 for i in range(N+1)]

        self.invs = [1 for i in range(N+1)]

        

        for i in range(1, N+1):

            self.facts[i] = self.facts[i-1] * i % mod

            self.invs[i] = pow(self.facts[i], mod-2, mod)



    def ncr(self, n, r):

        return self.facts[n] * self.invs[r] * self.invs[n-r] % mod



    def nhr(self, n, r): 

        return self.ncr(n+r-1, n-1)



comb = Combination(N)



for i in range(K+1):

    d = M * pow(M-1, N-i-1, mod) * comb.ncr(N-1, i)

    ans = (ans + d % mod) % mod



print(ans)

N, M, K = list(map(int, input().split()))
mod = 998244353
ans = 0


class Combination:
    def __init__(self, n):
        self.facts = [1 for i in range(N + 1)]
        self.invs = [1 for i in range(N + 1)]
        for i in range(1, N + 1):
            self.facts[i] = self.facts[i - 1] * i % mod
            self.invs[i] = pow(self.facts[i], mod - 2, mod)

    def ncr(self, n, r):
        return self.facts[n] * self.invs[r] * self.invs[n - r] % mod


comb = Combination(N)
for i in range(K + 1):
    d = M * pow(M - 1, N - i - 1, mod) * comb.ncr(N - 1, i)
    ans = (ans + d % mod) % mod
print(ans)

N, M, K = list(map(int, input().split()))
mod = 998244353
ans = 0


class Combination:
    def __init__(self, n):
        self.facts = [1 for i in range(N + 1)]
        self.invs = [1 for i in range(N + 1)]
        for i in range(1, N + 1):
            self.facts[i] = self.facts[i - 1] * i % mod
            self.invs[i] = pow(self.facts[i], mod - 2, mod)

    def ncr(self, n, r):
        return self.facts[n] * self.invs[r] * self.invs[n - r] % mod

    def nhr(self, n, r):
        return self.ncr(n + r - 1, n - 1)


comb = Combination(N)
for i in range(K + 1):
    d = M * pow(M - 1, N - i - 1, mod) * comb.ncr(N - 1, i)
    ans = (ans + d % mod) % mod
print(ans)

+    def nhr(self, n, r): +        return self.ncr(n + r - 1, n - 1) +