#include <bits/stdc++.h>
using namespace std;
double dp[2005][2005];
int visa[2005];
int visb[2005];
int main() {
  int n, m;
  cin >> n >> m;
  int a = n, b = n;
  for (int i = 0, x, y; i < m; i++) {
    cin >> x >> y;
    if (visa[x] == 0) {
      b--;
      visa[x] = 1;
    }
    if (visb[y] == 0) {
      a--;
      visb[y] = 1;
    }
  }
  for (int i = 0; i <= a; i++) {
    for (int j = 0; j <= b; j++) {
      if (i == 0 && j == 0) continue;
      if (i) dp[i][j] += 1.0 * i * (n - j) * dp[i - 1][j];
      if (j) dp[i][j] += 1.0 * (n - i) * j * dp[i][j - 1];
      if (i && j) dp[i][j] += 1.0 * i * j * dp[i - 1][j - 1];
      dp[i][j] += n * n;
      dp[i][j] /= i * n + j * n - i * j;
    }
  }
  printf("%.12lf", dp[a][b]);
}
