#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const double eps = 1e-15;
void Open() {}
double dpp[1110][1110];
double dpd[1110][1110];
int dcmp(double x) {
  if (fabs(x) < eps) return 0;
  if (x > eps) return 1;
  return -1;
}
int main() {
  int w, b;
  while (~scanf("%d%d", &w, &b)) {
    if (w == 0) {
      printf("0.000000000\n");
      continue;
    }
    double ans = (double)w / (w + b);
    dpp[w][b] = 1;
    for (int i = w; i >= 1; i--)
      for (int j = b; j >= 0; j--) {
        if (i == w && j == b) continue;
        dpp[i][j] =
            dpd[i][j + 2] * (j + 2) * (j + 1) / (i + j + 2) / (i + j + 1);
        dpp[i][j] +=
            dpd[i + 1][j + 1] * (j + 1) * (i + 1) / (i + j + 2) / (i + j + 1);
        dpd[i][j] = dpp[i][j + 1] * (j + 1) / (i + j + 1);
        ans += dpp[i][j] * i / (i + j);
      }
    printf("%.12f\n", ans);
  }
  return 0;
}
