#include <bits/stdc++.h>
using namespace std;
using ldb = long double;
using pa = pair<long long, long long>;
const long long MOD = 998244353, N = 3000;
const long long LINF = LLONG_MAX;
long long dp[N][N];
long long n, m, k;
long long add(long long x, long long y) {
  x += y;
  if (x >= MOD) return x - MOD;
  return x;
}
long long multiply(long long a, long long b) { return (a * b) % MOD; }
long long solve(long long i, long long state) {
  long long &ans = dp[i][state];
  if (i < 0 or i > n or state < 0 or state > k) {
    return 0;
  }
  if (ans != -1) {
    return ans;
  }
  return ans =
             add(multiply(m - 1, solve(i - 1, state - 1)), solve(i - 1, state));
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> m >> k;
  memset(dp, -1, sizeof(dp));
  dp[1][0] = m;
  cout << solve(n, k) << endl;
  return 0;
}
