#include <bits/stdc++.h>
double ans;
double win[1100][1100], lost[1100][1100];
int main() {
  int i, j, n, m;
  while (scanf("%d%d", &n, &m) != EOF) {
    ans = 0;
    memset(win, 0, sizeof(win));
    memset(lost, 0, sizeof(lost));
    for (i = 1; i <= n; ++i) win[i][0] = 1.0;
    for (i = 1; i <= n; ++i)
      for (j = 1; j <= m; ++j) {
        win[i][j] += i * 1.0 / (i + j) + lost[i][j - 1] * j * 1.0 / (i + j);
        lost[i][j] +=
            j * 1.0 / (i + j) * win[i - 1][j - 1] * (i * 1.0 / (i + j - 1));
        lost[i][j] +=
            j * 1.0 / (i + j) * win[i][j - 2] * ((j - 1) * 1.0 / (i + j - 1));
      }
    printf("%.9lf\n", win[n][m]);
  }
}
