#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
long long ad(long long a, long long b) {
  return (((a % mod) + (b % mod)) % mod + mod) % mod;
}
long long ap(long long a, long long b) { return ((a % mod) * (b % mod)) % mod; }
long long ksm(long long a, long long b) {
  long long res = 1;
  while (b) {
    if (b % 2 == 1) res = ap(res, a);
    a = ap(a, a);
    b /= 2;
  }
  return res;
}
long long jc[200005];
long long C(long long a, long long b) {
  return ap(jc[a], ap(ksm(jc[a - b], mod - 2), ksm(jc[b], mod - 2)));
}
int main(int argc, char** argv) {
  long long n, m;
  cin >> n >> m;
  if (n == 2) {
    cout << 0;
    return 0;
  }
  jc[0] = 1;
  for (long long i = 1; i <= max(n, m); i++) {
    jc[i] = ap(jc[i - 1], i);
  }
  long long ans = 0;
  for (long long i = 1; i <= m; i++) {
    if (i - 2 >= n - 3)
      ans = ad(ans, ap(i - 1, (ap(C(i - 2, n - 3), ksm(2, n - 3)))));
  }
  cout << ans;
  return 0;
}
