#include <bits/stdc++.h>
using namespace std;
long long read() {
  long long ans = 0;
  char c = getchar();
  while (c < '0' || c > '9') c = getchar();
  while (c >= '0' && c <= '9') ans = ans * 10 + c - 48, c = getchar();
  return ans;
}
int n, m;
bool h[2011], r[2011];
long double f[2011][2011];
int main() {
  n = read();
  m = read();
  int n1 = n, n2 = n;
  for (int i = 1; i <= m; ++i) {
    int x = read(), y = read();
    if (!h[x]) h[x] = 1, --n1;
    if (!r[y]) r[y] = 1, --n2;
  }
  f[0][0] = 0;
  for (long long i = 0; i <= n1; ++i) {
    for (long long j = 0; j <= n2; ++j) {
      if (i == 0 && j == 0) continue;
      if (i >= 1 && j >= 1) f[i][j] += f[i - 1][j - 1] * i * j;
      if (i >= 1) f[i][j] += f[i - 1][j] * i * (n - j);
      if (j >= 1) f[i][j] += f[i][j - 1] * (n - i) * j;
      f[i][j] += n * n;
      f[i][j] /= ((i + j) * n - i * j);
    }
  }
  printf("%.8lf\n", (double)f[n1][n2]);
  return 0;
}
