#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MOD = 998244353;
int add(int x, int y) { return (x + y) % MOD; }
int sub(int x, int y) { return (x + MOD - y) % MOD; }
int mul(int x, int y) { return (1ll * x * y) % MOD; }
int modpow(int base, int exp) {
  base %= MOD;
  int result = 1;
  while (exp > 0) {
    if (exp & 1) result = (1ll * result * base) % MOD;
    base = (1ll * base * base) % MOD;
    exp >>= 1;
  }
  return result;
}
int modinv(int a) { return modpow(a, MOD - 2); }
int divide(int x, int y) { return mul(x, modinv(y)); }
int n, m;
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> m;
  int rlen = 0;
  int roll1 = 1, roll2 = n + m;
  for (int i = 1; i <= n + 1; ++i) {
    rlen = add(rlen, divide(mul(roll1, i), roll2));
    roll1 = mul(roll1, n + 1 - i);
    roll2 = mul(roll2, n + m - i);
  }
  rlen = mul(rlen, m);
  int I = 1;
  for (int i = 1; i <= n; ++i) {
    I = add(I, divide(m, i));
  }
  cout << mul(rlen, I) << endl;
  return 0;
}
