#include <bits/stdc++.h>
using namespace std;
int fc[2000005], inv[2000005], Inv[2000005];
int C(int n, int m) {
  return 1ll * fc[n] * Inv[m] % 998244353 * Inv[n - m] % 998244353;
}
int main() {
  fc[0] = fc[1] = inv[0] = inv[1] = Inv[0] = Inv[1] = 1;
  for (int i = 2; i < 2000005; ++i) fc[i] = 1ll * i * fc[i - 1] % 998244353;
  for (int i = 2; i < 2000005; ++i)
    inv[i] = (998244353 - 1ll * 998244353 / i) * inv[998244353 % i] % 998244353,
    Inv[i] = inv[i];
  for (int i = 2; i < 2000005; ++i)
    Inv[i] = 1ll * Inv[i - 1] * Inv[i] % 998244353;
  int n, m, ans = 0;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; ++i) {
    int b = n - i, p = 1ll * (i + m) * inv[i] % 998244353,
        t1 = (1ll * b * inv[m + 1] + 1) % 998244353;
    int w = (1ll * (p - 1) * t1 + 1ll * b * inv[m + 1] % 998244353 +
             1ll * (i + m) * inv[m + 1] % 998244353 + 1) %
            998244353;
    if (i & 1)
      ans = (ans + 1ll * C(n, i) * w) % 998244353;
    else
      ans = (ans - 1ll * C(n, i) * w) % 998244353;
  }
  printf("%d", (ans + 998244353) % 998244353);
}
