#include <bits/stdc++.h>
using namespace std;
const int maxN = 1005;
int W, B;
double dp[maxN][maxN];
int main() {
  while (scanf("%d%d", &W, &B) != EOF) {
    memset(dp, 0, sizeof(dp));
    dp[1][0] = 1.;
    for (int i = 1; i <= W; i++) {
      for (int j = 0; j <= B; j++) {
        double ii = i, jj = j;
        dp[i][j] = ii / (ii + jj);
        if (j >= 3)
          dp[i][j] += (jj / (ii + jj)) * ((jj - 1) / (ii + jj - 1)) *
                      ((jj - 2) / (ii + jj - 2)) * dp[i][j - 3];
        if (j >= 2)
          dp[i][j] += (jj / (ii + jj)) * ((jj - 1) / (ii + jj - 1)) *
                      ((ii) / (ii + jj - 2)) * dp[i - 1][j - 2];
      }
    }
    printf("%.10lf\n", dp[W][B]);
  }
  return 0;
}
