output_description: Print the answer.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M K
attempt: def pow_mod(a, b, m):
      if b == 0:
          return 1
      elif b % 2 == 0:
          d = pow_mod(a, b // 2, m)
          return (d * d) % m
      else:
          return (a * pow_mod(a, b - 1, m)) % m
  
  
  def comb(n, c, m):
      upe = 1
      dow = 1
      for i in range(1, c + 1):
          upe = upe * n % m
          dow = dow * i % m
          n -= 1
      return upe * pow_mod(dow, m - 2, m) % m
  
  
  def modinv(a, m):
      b = m
      u = 1
      v = 0
      while b:
          t = a // b
          a -= t * b
          a, b = b, a
          u -= t * v
          u, v = v, u
      u %= m
      if u < 0:
          u += m
      return u
  
  
  MOD = 998244353
  
  
  def solve(N, M, K):
      MOD = 998244353
      U = N - 1 - K
      color = M * pow_mod(M - 1, U, MOD) % MOD
      c = comb(N - 1, U, MOD) % MOD
      # print("c0=%d"%c)
      answer = (c * color) % MOD
      # print("a0", answer)
      # print("U=%d"%U)
      for j in range(N - K, N):
          c = ((c * (N - j) % MOD) * modinv(j, MOD)) % MOD
          # assert c == comb(N-1, j, MOD)
          color = (color * (M - 1)) % MOD
          a = (c * color) % MOD
          answer += a
      return answer % MOD
  
  
  N, M, K = map(int, input().split())
  print(solve(N, M, K))
  
problem_description: Statement
  
  There are N blocks arranged in a row. Let us paint these blocks.
  
  We will consider two ways to paint the blocks different if and only if there
  is a block painted in different colors in those two ways.
  
  Find the number of ways to paint the blocks under the following conditions:
  
    * For each block, use one of the M colors, Color 1 through Color M, to paint it. It is not mandatory to use all the colors.
    * There may be at most K pairs of adjacent blocks that are painted in the same color.
  
  Since the count may be enormous, print it modulo 998244353.
samples: [{"input": "3 2 1", "output": "6\n    \n\nThe following ways to paint the blocks satisfy the conditions: `112`, `121`,\n`122`, `211`, `212`, and `221`. Here, digits represent the colors of the\nblocks.\n\n* * *"}, {"input": "100 100 0", "output": "73074801\n    \n\n* * *"}, {"input": "60522 114575 7559", "output": "479519525"}]