#include<cstdio>
#include<algorithm>
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fd(i,a,b) for(i=a;i>=b;i--)
using namespace std;
typedef long long ll;
const int maxn=500000+10,mo=998244353;
int fac[maxn*2],inv[maxn*2];
int i,j,k,l,t,n,m,ans;
int ksm(int x,int y) {
	int ret=1;
	for(;y;x=(ll)x*x%mo,y>>=1) if(y&1) ret=(ll)ret*x%mo;
	return ret;
} 
int C(int n,int m) {
	if(n<m||m<0) return 0;
	return (ll)fac[n]*inv[m]%mo*inv[n-m]%mo;
}
int main() {
	scanf("%d%d",&n,&m);
	if(n<m) swap(n,m);
	fac[0]=1;
	fo(i,1,n*2) fac[i]=(ll)fac[i-1]*i%mo;
	inv[n*2]=ksm(fac[n*2],mo-2);
	fd(i,n*2-1,0) inv[i]=(ll)inv[i+1]*(i+1)%mo;
	fo(i,1,m) (ans+=(ll)C(2*i,i)*C(n+m-2*i,n-i)%mo)%=mo;
	ans=(ll)ans*ksm(2*C(n+m,n)%mo,mo-2)%mo;
	ans=((n+ans)%mo+mo)%mo;
	printf("%d\n",ans);
}