#include <bits/stdc++.h>
using namespace std;
int ptc[2100], ptr[2100];
long double dp[2100][2100];
int main() {
  int i, j, k, x, y, z;
  long double n;
  int m;
  cin >> n >> m;
  for (i = 0; i < m; i++) {
    scanf("%d%d", &x, &y);
    ptc[x] = ptr[y] = 1;
  }
  int tr, tc;
  tr = tc = 0;
  for (i = 1; i <= n; i++) {
    if (!ptc[i]) tc++;
    if (!ptr[i]) tr++;
  }
  dp[0][0] = 0;
  long double tot_p;
  for (i = 0; i <= tr; i++) {
    dp[i + 1][0] = dp[i][0] + 1 / (1 - (n - i - 1) / n);
  }
  for (i = 0; i <= tc; i++) {
    dp[0][i + 1] = dp[0][i] + 1 / (1 - (n - i - 1) / n);
  }
  for (i = 1; i <= tr; i++) {
    for (j = 1; j <= tc; j++) {
      tot_p = (n - i) * j + (n - j) * i + i * j;
      dp[i][j] = dp[i - 1][j - 1] * (i * j) / tot_p +
                 dp[i][j - 1] * (n - i) * j / tot_p +
                 dp[i - 1][j] * (n - j) * i / tot_p +
                 1 / (1 - (n - i) * (n - j) / (n * n));
    }
  }
  double ans = dp[tr][tc];
  printf("%.10f\n", ans);
  return 0;
}
