#include <bits/stdc++.h>
int x[2010], y[2010];
double dp[2010][2010];
int main() {
  int n, m, a, b, l, r;
  while (scanf("%d %d", &n, &m) != EOF) {
    a = b = n;
    memset(x, 0, sizeof(x));
    memset(y, 0, sizeof(y));
    while (m--) {
      scanf("%d %d", &l, &r);
      if (!x[l]) a--;
      if (!y[r]) b--;
      x[l]++, y[r]++;
    }
    dp[0][0] = 0;
    for (int i = 1; i < n; i++)
      dp[i][0] = dp[0][i] = dp[i - 1][0] + 1.0 * n / i;
    for (int i = 1; i <= a; i++) {
      for (int j = 1; j <= b; j++) {
        double &t = dp[i][j];
        t = dp[i - 1][j - 1] * i * j + dp[i][j - 1] * (n - i) * j +
            dp[i - 1][j] * i * (n - j) + n * n;
        t /= n * n - (n - i) * (n - j);
      }
    }
    printf("%.10f\n", dp[a][b]);
  }
  return 0;
}
