#include <bits/stdc++.h>
const int maxn = 1000 + 10;
double dp[maxn][maxn][3];
int w, b;
void Prepare() {
  for (int i = 0; i <= 1000; i++) dp[0][i][0] = dp[0][i][1] = dp[0][i][2] = 0.0;
  for (int i = 1; i <= 1000; i++)
    dp[i][0][0] = 1.0, dp[i][0][1] = 0.0, dp[i][0][2] = dp[i - 1][0][0];
  for (int i = 1; i <= 1000; i++)
    for (int j = 1; j <= 1000; j++) {
      double pw = (double)i / (i + j), pb = (double)j / (i + j);
      dp[i][j][0] = pw + pb * dp[i][j - 1][1];
      dp[i][j][1] = pb * dp[i][j - 1][2];
      dp[i][j][2] = pw * dp[i - 1][j][0] + pb * dp[i][j - 1][0];
    }
}
int main() {
  Prepare();
  while (scanf("%d%d", &w, &b) != EOF) printf("%.9lf\n", dp[w][b][0]);
  return 0;
}
