#include <bits/stdc++.h>
using namespace std;
double dp[1005][1005];
double solve(long long int w, long long int b) {
  if (dp[w][b] != -1) return dp[w][b];
  if (w == 0)
    return 0;
  else if (b == 0)
    return 1;
  else {
    double ww = w, bb = b, ans, sum;
    sum = ww + bb;
    ans = (ww / sum);
    if (b >= 2)
      ans += solve(w - 1, b - 2) *
             ((b / sum) * ((b - 1) / (sum - 1)) * (w / (sum - 2)));
    if (b >= 3)
      ans += solve(w, b - 3) *
             ((b / sum) * ((b - 1) / (sum - 1)) * ((b - 2) / (sum - 2)));
    dp[w][b] = ans;
    return dp[w][b];
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int w, b;
  cin >> w >> b;
  for (long long int i = 0; i < 1005; i++) {
    for (long long int j = 0; j < 1005; j++) dp[i][j] = -1;
  }
  dp[0][0] = 0;
  dp[1][0] = 1;
  dp[0][1] = 0;
  dp[1][1] = 0.5;
  dp[1][2] = 1.0 / 3.0;
  dp[2][1] = 2.0 / 3.0;
  dp[2][2] = 2.0 / 3.0;
  double ans = solve(w, b);
  cout << fixed << setprecision(9) << ans << '\n';
}
