#include <bits/stdc++.h>
using namespace std;
long n, m, a, b;
set<long> s1, s2;
long c1, c2;
double ev;
double dp[2500][2500];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> m;
  for (int i = 1; i <= m; i++) {
    cin >> a >> b;
    s1.insert(a);
    s2.insert(b);
  }
  c1 = n - s1.size();
  c2 = n - s2.size();
  dp[0][0] = 0;
  for (int i = 0; i <= c1; i++)
    for (int j = 0; j <= c2; j++) {
      ev = n * n;
      if (i + j == 0) continue;
      if (i > 0) ev += dp[i - 1][j] * i * (n - j);
      if (j > 0) ev += dp[i][j - 1] * j * (n - i);
      if (i > 0 && j > 0) ev += dp[i - 1][j - 1] * i * j;
      dp[i][j] = ev * 1.0 / n / n;
      dp[i][j] /= (1.0 - (n - i) * (n - j) * 1.0 / n / n);
    }
  cout.precision(12);
  cout << fixed << dp[c1][c2] << endl;
  cin.get();
  cin.get();
  return 0;
}
