#include <bits/stdc++.h>
using namespace std;
inline int read() {
  register int num = 0;
  register char ch;
  while ((ch = getchar()) == ' ' || ch == '\n' || ch == '\r')
    ;
  num = ch ^ 48;
  while ((ch = getchar()) != ' ' && ch != '\n' && ch != '\r' && ~ch)
    num = num * 10 + (ch ^ 48);
  return num;
}
double dp[2001][2001];
bool r[2001], c[2001];
int main() {
  register int n = read(), m = read(), h = n, l = n;
  for (register int i = 1; i <= m; ++i) {
    register int x = read(), y = read();
    if (!r[x]) {
      --h;
      r[x] = true;
    }
    if (!c[y]) {
      --l;
      c[y] = true;
    }
  }
  for (register int i = 1; i <= n; ++i) {
    dp[i][0] = dp[i - 1][0] + (double)n / i;
    dp[0][i] = dp[0][i - 1] + (double)n / i;
  }
  for (register int i = 1; i <= h; ++i)
    for (register int j = 1; j <= l; ++j)
      dp[i][j] = (n * n + i * j * dp[i - 1][j - 1] +
                  (n - i) * j * dp[i][j - 1] + i * (n - j) * dp[i - 1][j]) /
                 (n * n - (n - i) * (n - j));
  printf("%.10f", dp[h][l]);
  return 0;
}
