#include <bits/stdc++.h>
using namespace std;
double dp[1001][1001];
double frac(double a, double b) { return (a / (a + b)); }
int main() {
  cout << fixed << setprecision(9);
  for (int i = 1; i < 1001; i++) {
    for (int j = 0; j < 1001; j++) {
      dp[i][j] = frac(i, j);
      if (i >= 1 and j >= 2)
        dp[i][j] +=
            frac(j, i) * frac(j - 1, i) * frac(i, j - 2) * dp[i - 1][j - 2];
      if (j >= 3)
        dp[i][j] += frac(j, i) * frac(j - 1, i) * frac(j - 2, i) * dp[i][j - 3];
    }
  }
  int x, y;
  cin >> x >> y;
  cout << dp[x][y] << endl;
}
