#include <bits/stdc++.h>
using namespace std;
struct node {
  int x, y;
} f[5];
int n, m;
double caln(double x) { return sqrt(x * x + n * n); }
double calm(double x) { return sqrt(x * x + m * m); }
double C(int n, int m) {
  double ans = 1;
  for (int i = n; i > n - m; --i) ans *= i, ans /= n - i + 1;
  return ans;
}
int main() {
  double n, m;
  while (cin >> n >> m) {
    double ans = 0;
    for (int i = 1; i <= n; ++i) {
      ans += i * i / n * C(m, i) * C(n * m - m, n - i) / C(n * m, n);
    }
    printf("%.10f\n", ans);
  }
  return 0;
}
