#include <bits/stdc++.h>
using namespace std;
const int N = 1 << 10;
int w, b;
double dp[N][N];
double solve(int w, int b) {
  double ww = w, bb = b;
  if (dp[w][b] < 0) {
    dp[w][b] = (double)ww / (bb + ww);
    if (b >= 3)
      dp[w][b] += bb / (bb + ww) * (bb - 1) / (bb + ww - 1) * (bb - 2) /
                  (bb + ww - 2) * solve(w, b - 3);
    if (b >= 2 && w >= 1)
      dp[w][b] += bb / (bb + ww) * (bb - 1) / (bb + ww - 1) * ww /
                  (bb + ww - 2) * solve(w - 1, b - 2);
  }
  return dp[w][b];
}
int main() {
  scanf("%d%d", &w, &b);
  for (int i = 0; i < N; ++i) {
    for (int j = 0; j < N; ++j) {
      if (i == 0)
        dp[i][j] = 0;
      else if (j == 0)
        dp[i][j] = 1;
      else
        dp[i][j] = -1;
    }
  }
  printf("%.10f\n", solve(w, b));
  return 0;
}
