#include <bits/stdc++.h>
using namespace std;
double PD[1024][1024][2];
double prob(int w, int b, int turn) {
  if (b < 0) return 0.0;
  if (w + b == 0) return (turn == 1 ? 1.0 : 0.0);
  if (PD[w][b][turn] >= -2.0) return PD[w][b][turn];
  if (turn == 0) {
    if (w == 0) return 0.0;
    if (b == 0) return 1.0;
    double p = (double)w / (double)(w + b);
    p += (double)b / (double)(w + b) * (1.0 - prob(w, b - 1, 1 - turn));
    return PD[w][b][turn] = p;
  }
  if (w == 0 or b == 0) return 1.0;
  double p = (double)w / (double)(w + b);
  p += (double)b / (double)(w + b) *
       ((double)w / (double)(w + b - 1) * (1.0 - prob(w - 1, b - 1, 1 - turn)) +
        (double)(b - 1) / (double)(w + b - 1) *
            (1.0 - prob(w, b - 2, 1 - turn)));
  return PD[w][b][turn] = p;
}
int main() {
  int b, p;
  scanf("%d %d", &b, &p);
  for (int i = 0; i < 1024; i++)
    for (int j = 0; j < 1024; j++)
      for (int k = 0; k < 2; k++) PD[i][j][k] = -100.0;
  printf("%.9lf\n", prob(b, p, 0));
  return 0;
}
