#include<cstdio>
#include<algorithm>
using namespace std;
const long long mod=998244353;
long long n,m,power[1000010],ans;
void exgcd(long long a,long long b,long long &x,long long &y)
{
	if(!b)
	{
		x=1;
		y=0;
	}
	else
	{
		exgcd(b,a%b,y,x);
		y-=x*(a/b);
	}
}
long long inv(long long x,long long y)
{
	long long res,w;
	exgcd(x,y,res,w);
	return ((res%y)+y)%y;
}
long long C(long long x,long long y)
{
//	if(x==y)	return 1;
//	if(x==0)	return 1;
//	if(y==0)	return 1;
	return ((((power[x]*inv(power[y],mod))%mod)*inv(power[x-y],mod))%mod);
}
int main()
{
	scanf("%lld %lld",&n,&m);
	if(n>m)	swap(n,m);
	power[0]=1;
	for(long long i=1;i<=1000000;++i)	power[i]=(power[i-1]*i)%mod;
	for(long long i=1;i<=n;++i)	ans=(ans+C(2*i,i)*C(n+m-i-i,n-i))%mod;
//	printf("%lld\n",ans);
	ans=(ans*inv(2,mod))%mod;
//	printf("%lld\n",ans);
	ans=(ans*inv(C(n+m,n),mod))%mod;
//	printf("%lld %lld\n",C(n+m,n),ans);
//	ans=(((ans*inv(2,mod))%mod)*inv(C(n+m,n),mod))%mod;
	printf("%lld",(ans+m)%mod);
	return 0;
}