#include <bits/stdc++.h>
using namespace std;
long long fac[200005];
long long power(long long x, long long y, long long p) {
  long long res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) res = ((res % p) * (x % p)) % p;
    y = y >> 1LL;
    x = ((x % p) * (x % p)) % p;
  }
  return res;
}
long long modInverse(long long n, long long p) {
  return (long long)power(n, p - 2, p);
}
long long nCrModPFermat(long long n, long long r, long long p) {
  long long res = 1;
  if (r == 0) return 1;
  fac[0] = 1;
  for (long long i = 1; i <= n; i++) fac[i] = ((fac[i - 1] % p) * (i % p)) % p;
  res = ((res % p) * (fac[n] % p)) % p;
  res = ((res % p) * ((modInverse(fac[r], p) % p))) % p;
  res = ((res % p) * ((modInverse(fac[n - r], p) % p))) % p;
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, m;
  cin >> n >> m;
  if (n == 2) {
    cout << "0"
         << "\n";
  } else {
    long long ans = nCrModPFermat(m, n - 1, 998244353);
    ans = ((ans % 998244353) * (((n - 2) % 998244353))) % 998244353;
    ans = ((ans % 998244353) * (((power(2, n - 3, 998244353)) % 998244353))) %
          998244353;
    cout << ans;
  }
  return 0;
}
