#include <bits/stdc++.h>
using namespace std;
map<pair<int, int>, double> memo;
double solve(int w, int b) {
  if (w <= 0) return 0;
  if (b <= 0) return 1;
  pair<int, int> p = {w, b};
  if (memo.find(p) != memo.end()) {
    return memo[p];
  }
  double win = (double)w / (w + b), conti = (double)b / (w + b);
  b--;
  conti *= (double)b / (w + b);
  b--;
  if (conti > 1e-13) {
    double a = (double)solve(w, b - 1) * b / (w + b);
    double c = (double)solve(w - 1, b) * w / (w + b);
    win += conti * (a + c);
  }
  memo[p] = win;
  return win;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int w, b;
  cin >> w >> b;
  double ans = solve(w, b);
  cout << setprecision(16) << fixed << ans << "\n";
  return 0;
}
