#include <bits/stdc++.h>
using namespace std;
int w, b;
double dp[1005][1005][2];
double f(int w, int b, int t) {
  if (b < 0) return 0;
  if (w == 0) return 0;
  if (b == 0) {
    if (t)
      return 0;
    else
      return 1;
  }
  double &ret = dp[w][b][t];
  if (ret >= 0) return ret;
  if (t) {
    double x = b * 1.0 / (w + b);
    b--;
    double y =
        b * 1.0 / (w + b) * f(w, b - 1, 0) + w * 1.0 / (w + b) * f(w - 1, b, 0);
    ret = x * y;
  } else {
    ret = w * 1.0 / (w + b) + b * 1.0 / (w + b) * f(w, b - 1, 1);
  }
  return ret;
}
void solve() {
  cin >> w >> b;
  memset(dp, -1, sizeof(dp));
  cout << fixed << setprecision(10);
  ;
  cout << f(w, b, 0) << "\n";
}
int main() {
  solve();
  return 0;
}
