#include <bits/stdc++.h>
using namespace std;
bool vis[2020][2020];
double dp[2020][2020];
int vx[2020], vy[2020];
int n, m;
double f(int x, int y) {
  if (x == n && y == n) return 0;
  if (vis[x][y]) return dp[x][y];
  vis[x][y] = 1;
  double &ret = dp[x][y];
  ret = 0;
  double t = n * n;
  if (x + 1 <= n) ret += (n - x) * y / t * f(x + 1, y);
  if (y + 1 <= n) ret += (n - y) * x / t * f(x, y + 1);
  if (x + 1 <= n && y + 1 <= n) ret += (n - x) * (n - y) / t * f(x + 1, y + 1);
  ret += 1;
  ret /= (t - x * y) / t;
  return ret;
}
int main() {
  scanf("%d%d", &n, &m);
  int a = 0, b = 0;
  for (int i = 1; i <= m; ++i) {
    int r, c;
    scanf("%d%d", &r, &c);
    ++vx[r];
    if (vx[r] == 1) ++a;
    ++vy[c];
    if (vy[c] == 1) ++b;
  }
  printf("%.12lf\n", f(a, b));
  return 0;
}
