#include <bits/stdc++.h>
using namespace std;
double win[1005][1005];
bool vis[1005][1005];
double f(int W, int B) {
  if (W <= 0) return 0;
  if (B <= 0) return 1;
  if (W == 1 && B == 1) return 0.5;
  if (vis[W][B]) return win[W][B];
  vis[W][B] = 1;
  double w = W;
  double b = B;
  double ret = w / (b + w);
  double oth = 1 - ret;
  oth = oth * ((b - 1) / (b + w - 1));
  oth = oth * (((w)*f(W - 1, B - 2) / (b + w - 2)) +
               ((b - 2) * f(W, B - 3) / (b + w - 2)));
  return win[W][B] = ret + oth;
}
int W, B;
int main() {
  scanf("%d%d", &W, &B);
  printf("%.12f\n", f(W, B));
  return 0;
}
