#include <cmath>
#include <cstdio>
#include <iostream>
using namespace std;
double dps[101][101];
double dp(int i,int j)
{
if(j==0)
{
dps[i][j]=0;
return 0;
}
if(j==1)
{
dps[i][j]=(i+j)*1.0/2;
return dps[i][j];
}
if(dps[i][j]!=0) return dps[i][j];
else
{
double temp = (i+j)*(i+j-1)*1.0/(j*j+2*i*j-j);
dps[i][j]= temp*i*j*2.0/(i+j)/(i+j-1)*(dp(i+1,j-1)+1)+temp*j*(j-1)/(i+j)/(i+j-1)*(dp(i+2,j-2)+1.0)+temp*i*(i-1)*1.0/(i+j)/(i+j-1);
return dps[i][j];
}
}
int main()
{
int n,m;
memset(dps,0,sizeof(dps));
for(int i=0;i<=50;i++)
for(int j=0;j<=50;j++)
dp(i,j);
while(scanf("%d%d",&n,&m)!=EOF)
{
printf("%.2lf\n",dps[n][m]);
}
}