#include <bits/stdc++.h>
using namespace std;
double dp[1009][1009][2];
double solve(int w, int b, bool isp) {
  if (dp[w][b][isp]) return dp[w][b][isp];
  if (w <= 0) return 0.0;
  if (w <= 0 && b <= 0) return 0.0;
  if (b <= 0 && w > 0) return isp ? 1.0 : 0.0;
  if (b > 0 && w <= 0) return 0.0;
  dp[w][b][isp] =
      isp ? 1.0 * w / (b + w) + 1.0 * b / (b + w) * solve(w, b - 1, 0)
          : 1.0 * b / (b + w) * 1.0 * w / (b + w - 1) * solve(w - 1, b - 1, 1) +
                1.0 * b / (b + w) * 1.0 * (b - 1) / (b + w - 1) *
                    solve(w, b - 2, 1);
  return dp[w][b][isp];
}
int main() {
  int w, b;
  cin >> w >> b;
  printf("%.10lf", solve(w, b, 1));
}
