#include<bits/stdc++.h>
using namespace std;
#define int long long
#define nn 1000008 
#define mod 998244353
int f[nn],rf[nn];
int qpow(int x,int y=mod-2){
	int res=1;while(y){
		if(y&1) res=res*x%mod;
		x=x*x%mod;y=y/2;
	}
	return res;
}
void add(int&x,int y){
	x=(x+y)%mod;
}
int C(int x,int y){
	return f[x]*rf[y]%mod*rf[x-y]%mod;
}
int walk(int x,int y){
	return C(x+y,x);
}

signed main(){
	f[0]=rf[0]=1;for(int i=1;i<nn;i++) f[i]=f[i-1]*i%mod;
	rf[nn-1]=qpow(f[nn-1]);for(int i=nn-2;i>=0;i--) rf[i]=rf[i+1]*(i+1)%mod;
	int n,m;cin>>n>>m;if(n>m) swap(n,m);int ans=0;
	for(int i=1;i<=n;i++)
		add(ans,walk(n-i,m-i)%mod*walk(i,i));
	ans=ans*qpow(2)%mod*qpow(walk(n,m))%mod;		
	cout<<(ans+m)%mod;
	
	return 0;
}
// 42 23