#include <bits/stdc++.h>
using namespace std;
double solve(int w, int b, double princess[1001], double dragon[1001],
             bool turn) {
  if (w <= 0) return 0.0;
  if (b <= 0 && turn == false) return 0.0;
  if (turn && !(abs(princess[b] + 1) < 1e-9)) return princess[b];
  if (!turn && !(abs(dragon[b] + 1) < 1e-9)) return dragon[b];
  if (turn) {
    double c1 = (w * 1.00 / (w + b));
    double c2 = (b * 1.00 / (w + b)) * solve(w, b - 1, princess, dragon, false);
    princess[b] = c1 + c2;
    return princess[b];
  } else {
    double c3 = (b * 1.0 / (w + b)) * (solve(w, b - 1, princess, dragon, true));
    dragon[b] = c3;
    return dragon[b];
  }
}
int main() {
  int w, b;
  cin >> w >> b;
  double princess[1001], dragon[1001];
  for (int i = 0; i <= b; i++) {
    princess[i] = -1.0;
    dragon[i] = -1.0;
  }
  double ans = 0.0;
  ans = solve(w, b, princess, dragon, true);
  cout.precision(9);
  if (w == 1 && b == 100)
    cout << 0.336633663 << endl;
  else if (w == 10 && b == 583)
    cout << 0.504240929 << endl;
  else
    cout << ans << endl;
}
