#include <bits/stdc++.h>
using namespace std;
double dp[1001][1001], ans;
bool visited[1001][1001];
double solve(int w, int b) {
  if (w <= 0) return 0;
  if (b <= 0) return 1;
  if (visited[w][b]) {
    return dp[w][b];
  }
  int x, y;
  x = w, y = b;
  double c = w * 1.0 / (w + b), d = b * 1.0 / (w + b);
  b--;
  d *= b * 1.0 / (w + b);
  b--;
  if (d > 1e-13) {
    double black = solve(w, b - 1) * (b * 1.0 / (w + b));
    double white = solve(w - 1, b) * (w * 1.0 / (w + b));
    c += d * (black + white);
  }
  dp[x][y] = c;
  visited[x][y] = true;
  return c;
}
int main() {
  int w, b;
  cin >> w >> b;
  printf("%.12f\n", solve(w, b));
  return 0;
}
