#include <bits/stdc++.h>
using namespace std;
int n, m;
int r[2002], c[2002];
double dp[2002][2002];
int rc, cc;
int main() {
  memset(r, 0, sizeof(r));
  memset(c, 0, sizeof(c));
  memset(dp, 0, sizeof(dp));
  scanf("%d %d", &n, &m);
  rc = cc = n;
  int a, b;
  for (int i = 0; i < m; i++) {
    scanf("%d %d", &a, &b);
    if (r[a - 1] == 0) {
      r[a - 1] = 1;
      rc--;
    }
    if (c[b - 1] == 0) {
      c[b - 1] = 1;
      cc--;
    }
  }
  dp[0][0] = 0;
  for (int i = 1; i <= rc; i++) {
    dp[i][0] = dp[i - 1][0] + n / (double)i;
  }
  for (int j = 1; j <= cc; j++) {
    dp[0][j] = dp[0][j - 1] + n / (double)j;
  }
  for (int i = 1; i <= rc; i++) {
    for (int j = 1; j <= cc; j++) {
      dp[i][j] = (n * n + i * j * dp[i - 1][j - 1] +
                  i * (n - j) * dp[i - 1][j] + (n - i) * j * dp[i][j - 1]) /
                 (n * i + n * j - i * j);
    }
  }
  printf("%lf\n", dp[rc][cc]);
}
