#include <bits/stdc++.h>
using namespace std;
int vr[2111], vc[2111];
double dp[2111][2111], pp[2111][2111];
int n, m;
int main() {
  cin >> n >> m;
  int rc = 0, cc = 0;
  for (int i = 0; i < m; i++) {
    int r, c;
    scanf("%d %d", &r, &c);
    if (vr[r] == 0) rc++;
    if (vc[c] == 0) cc++;
    vr[r] = 1;
    vc[c] = 1;
  }
  dp[n][n] = 0;
  for (int i = n; i >= rc; i--) {
    for (int j = n; j >= cc; j--) {
      if (i == n && j == n) continue;
      dp[i][j] = i * j + (n - i) * j * (dp[i + 1][j] + 1) +
                 i * (n - j) * (dp[i][j + 1] + 1) +
                 (n - i) * (n - j) * (dp[i + 1][j + 1] + 1);
      dp[i][j] /= (n * n - i * j);
    }
  }
  printf("%.10lf\n", dp[rc][cc]);
  return 0;
}
