#include <bits/stdc++.h>
using namespace std;
int power(int x, unsigned int y, unsigned int m) {
  if (y == 0) return 1;
  long long int p = power(x, y / 2, m) % m;
  p = (p * p) % m;
  return (int)((y % 2 == 0) ? p : (x * p) % m);
}
int invMod(int val, int mod) { return power(val, mod - 2, mod); }
long long int mod = 998244353;
long long int factorial(int n) {
  long long int f = 1;
  for (int i = 1; i <= n; i++) {
    f = (f * i) % mod;
  }
  return f;
}
long long int invFactorial(int n) {
  long long int f = 1;
  for (int i = 1; i <= n; i++) {
    f = (f * invMod(i, mod)) % mod;
  }
  return f;
}
long long int pow(int n, int k) {
  long long int p = 1;
  for (int i = 1; i <= k; i++) {
    p = (p * n) % mod;
  }
  return p;
}
long long int comb(int n, int k) {
  long long int ans = factorial(n);
  ans = (ans * invFactorial(k)) % mod;
  ans = (ans * invFactorial(n - k)) % mod;
  return ans;
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  long long int ans = ((n - 2) * pow(2, n - 3)) % mod;
  ans = (ans * comb(m, n - 1)) % mod;
  printf("%d\n", int(ans));
  return 0;
}
