#include<bits/stdc++.h>

using namespace std;

typedef long long int_t;
const int_t mod = 998244353;

int_t fac[1000100], invf[1000100];

int_t C(int_t n, int_t m) {return fac[n] * invf[m] % mod * invf[n-m] % mod;}
int_t fpow(int_t a,int_t b, int_t p) {
    int_t ans = 1;
    for(;b;b>>=1, a = a * a % p) if(b & 1) ans = ans * a % p;
    return ans;
}

int main() {
    fac[0] = invf[0] = fac[1] = invf[1] = 1;
    for(int_t i=2;i<=1000000;i++) fac[i] = fac[i-1] * i % mod, invf[i] = (mod - mod / i) * invf[mod % i] % mod;
    for(int_t i=2;i<=1000000;i++) invf[i] = invf[i] * invf[i-1] % mod;
    int_t n, m, ans = 0;
    cin>>n>>m;
    for(int_t i=1;i<=min(n,m);i++) 
        (ans += C(2 * i, i) * C(n + m - 2 * i, n - i) % mod) %= mod;
    ans = ans * fpow(C(n+m, n), mod-2, mod) % mod * invf[2] % mod;
    ans = ans + max(n, m) % mod;
    cout << ans;
}