#include <bits/stdc++.h>
using namespace std;
const int N = 1000 + 5;
double mem[N][N][2];
double dp(int w, int b, int turn) {
  if (w == 0) return 0.0;
  if (mem[w][b][turn] > -0.5) return mem[w][b][turn];
  double sum = 1.0 * (w + b);
  double ans = 0.0;
  if (turn) {
    ans = 1.0 * w / sum;
    if (b > 0) {
      ans += 1.0 * b / sum * dp(w, b - 1, turn ^ 1);
    }
  } else {
    if (b >= 2) {
      ans += 1.0 * (b / sum) * ((b - 1) / (sum - 1)) * dp(w, b - 2, turn ^ 1);
    }
    if (w >= 1 && b >= 1) {
      ans += 1.0 * (b / sum) * (w / (sum - 1)) * dp(w - 1, b - 1, turn ^ 1);
    }
  }
  return mem[w][b][turn] = ans;
}
int main() {
  int w, b;
  scanf("%d %d", &w, &b);
  memset(mem, -1, sizeof mem);
  printf("%.9f\n", dp(w, b, 1));
  return 0;
}
