#include<cstdio>
#include<algorithm>
using namespace std;

const int N=1000005,P=998244353;
int n,m,f[N],rf[N];

int pw(int a,int x)
{
	int ans=1;
	for(;x;x>>=1,a=1ll*a*a%P)
		if(x&1)ans=1ll*ans*a%P;
	return ans;
}

int C(int n,int m)
{
	return 1ll*f[n]*rf[m]%P*rf[n-m]%P;
}

int main()
{
	scanf("%d%d",&n,&m);
	if(n<m)swap(n,m);
	for(int i=f[0]=1;i<=n+m;i++)f[i]=1ll*f[i-1]*i%P;
	rf[n+m]=pw(f[n+m],P-2);
	for(int i=n+m;i;i--)rf[i-1]=1ll*rf[i]*i%P;
	int ans=n;
	for(int i=1;i<=m;i++)
		ans=(ans+1ll*C(2*i,i)*C(n+m-2*i,n-i)%P*pw(2*C(n+m,n),P-2))%P;
	printf("%d\n",ans);
	return 0;
}
