#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2005;
double dp[MAXN][MAXN];
int main() {
  int n, m;
  bool r[MAXN], c[MAXN];
  memset(r, false, sizeof(r));
  memset(c, false, sizeof(c));
  scanf("%d%d", &n, &m);
  int tr, tc, p = 0, q = 0;
  while (m--) {
    scanf("%d%d", &tr, &tc);
    if (!r[tr]) {
      r[tr] = true;
      ++p;
    }
    if (!c[tc]) {
      c[tc] = true;
      ++q;
    }
  }
  dp[n][n] = 0;
  for (int i = n; i >= 0; --i)
    for (int j = n; j >= 0; --j)
      if (i != n || j != n)
        dp[i][j] = ((n - i) * j * dp[i + 1][j] + i * (n - j) * dp[i][j + 1] +
                    (n - i) * (n - j) * dp[i + 1][j + 1] + n * n) /
                   (n * n - i * j);
  printf("%.10f", dp[p][q]);
}
