#include <bits/stdc++.h>
using namespace std;
double dp[1100][1100][2];
int main() {
  int w, b;
  cin >> w >> b;
  for (int i = 0; i <= w; ++i)
    for (int j = 0; j <= b; ++j) {
      if (i == 0) {
        dp[i][j][0] = 0;
        dp[i][j][1] = 1;
        continue;
      }
      if (j == 0) {
        dp[i][j][0] = dp[i][j][1] = 1;
        continue;
      }
      dp[i][j][0] =
          1.0 * i / (i + j) + 1. * j / (i + j) * (1 - dp[i][j - 1][1]);
      if (j >= 2)
        dp[i][j][1] = 1. * i / (i + j) +
                      1. * j / (i + j) *
                          (1. * i / (i + j - 1) * (1 - dp[i - 1][j - 1][0]) +
                           1. * (j - 1) / (i + j - 1) * (1 - dp[i][j - 2][0]));
      else
        dp[i][j][1] =
            1. * i / (i + j) + 1. * j / (i + j) * (1 - dp[i - 1][j - 1][0]);
    }
  cout << fixed << setprecision(10) << dp[w][b][0] << endl;
  return 0;
}
