#include <bits/stdc++.h>
using namespace std;
double f[2050][2050];
int b[5000], c[5000];
int main() {
  int i, j, t1, t2, n, m, x, y;
  double s;
  scanf("%d%d", &n, &m);
  for (i = 1; i <= n; i++) {
    b[i] = 0;
    c[i] = 0;
  }
  for (i = 1; i <= m; i++) {
    scanf("%d%d", &x, &y);
    b[x] = 1;
    c[y] = 1;
  }
  t1 = 0;
  t2 = 0;
  for (i = 1; i <= n; i++) {
    if (b[i] == 1) t1++;
    if (c[i] == 1) t2++;
  }
  for (i = 0; i <= n + 1; i++) {
    f[i][n + 1] = 0;
    f[n + 1][i] = 0;
  }
  for (i = n; i >= 0; i--)
    for (j = n; j >= 0; j--) {
      if (i == n && j == n) {
        f[i][j] = 0;
        continue;
      }
      s = (n - i + 0.0) * (n - j + 0.0) / (n * n + 0.0) * f[i + 1][j + 1] +
          i * (n - j + 0.0) / (n * n + 0.0) * f[i][j + 1] +
          (n - i + 0.0) * j / (n * n + 0.0) * f[i + 1][j] + 1;
      f[i][j] = s / (1 - (i * j + 0.0) / (n * n + 0.0));
    }
  printf("%lf\n", f[t1][t2]);
  return 0;
}
