#include <bits/stdc++.h>
using namespace std;
double dp[2005][2005];
bool col[2005], row[2005];
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  int a = 0, b = 0, x, y;
  while (m--) {
    scanf("%d%d", &x, &y);
    if (!row[x]) {
      row[x] = 1;
      a++;
    }
    if (!col[y]) {
      col[y] = 1;
      b++;
    }
  }
  dp[n][n] = 0;
  for (int i = n; i >= 0; i--) {
    for (int j = n; j >= 0; j--) {
      if (i == n && j == n) continue;
      dp[i][j] += 1;
      dp[i][j] += (n - i) * j * 1.0 / ((n) * (n)) * dp[i + 1][j];
      dp[i][j] += (n - j) * i * 1.0 / ((n) * (n)) * dp[i][j + 1];
      dp[i][j] += 1.0 * (n - i) * (n - j) / ((n) * (n)) * dp[i + 1][j + 1];
      dp[i][j] /= (1 - 1.0 * i * j / ((n) * (n)));
    }
  }
  printf("%.10f\n", dp[a][b]);
  return 0;
}
