#include <bits/stdc++.h>
using namespace std;
double dp[1010][1010][2], ans;
int w, b;
int main() {
  scanf("%d%d", &w, &b);
  dp[w][b][0] = 1.0;
  for (int total = w + b; total >= 0; total--) {
    for (int i = min(total, w); i >= 0; i--) {
      int j = total - i;
      if (j > b) continue;
      if (j == 0)
        dp[max(i - 2, 0)][j][0] += dp[i][j][1];
      else {
        if (i == 1) {
          if (j > 1) {
            dp[i][j - 2][0] +=
                dp[i][j][1] * 1.0 * j * (j - 1) / ((i + j) * (i + j - 1) * 1.0);
            dp[i][j - 1][1] += dp[i][j][0] * 1.0 * j / ((i + j) * 1.0);
          }
        }
        if (i > 1) {
          if (j == 1) {
            dp[i - 1][j - 1][0] +=
                dp[i][j][1] * 1.0 * j * i / ((i + j) * (i + j - 1) * 1.0);
          }
          if (j > 1) {
            dp[i][j - 2][0] +=
                dp[i][j][1] * 1.0 * j * (j - 1) / ((i + j) * (i + j - 1) * 1.0);
            dp[i - 1][j - 1][0] +=
                dp[i][j][1] * 1.0 * j * i / ((i + j) * (i + j - 1) * 1.0);
            dp[i][j - 1][1] += dp[i][j][0] * 1.0 * j / ((i + j) * 1.0);
          }
        }
      }
    }
  }
  for (int i = w; i >= 1; i--) {
    for (int j = b; j >= 0; j--) {
      ans += dp[i][j][0] * 1.0 * i / ((i + j) * 1.0);
    }
  }
  printf("%.9lf", ans);
}
