#include <bits/stdc++.h>
using namespace std;
long long pow2(long long a) { return a * a; }
long long pow1(long long a, long long b, long long m) {
  if (!b)
    return 1;
  else if (b == 1)
    return a % m;
  else if (b % 2)
    return a * pow1(a, b - 1, m) % m;
  else
    return pow2(pow1(a, b / 2, m) % m) % m;
}
long long INF = 998244353;
int main() {
  long long n, m;
  cin >> n >> m;
  long long a = 1;
  for (int i = 2; i < m + 1; i++) a = a * i % INF;
  long long b = 1;
  for (int i = 2; i < n; i++) b = b * i % INF;
  for (int i = 2; i < m - n + 2; i++) b = b * i % INF;
  b = pow1(b, INF - 2, INF);
  a = a * b % INF;
  a = a * (n - 2) % INF;
  for (int i = 0; i < n - 3; i++) a = a * 2 % INF;
  cout << a;
  return 0;
}
