#include <bits/stdc++.h>
using namespace std;
double memo[2010][2010];
int n;
double solve(int rc, int cc) {
  if (rc < 0 || cc < 0) return -1;
  if (!rc && !cc) return 0;
  double &ret = memo[rc][cc];
  if (ret == ret) return ret;
  ret = rc * (n - cc) / (1.0 * n * n) * (1 + solve(rc - 1, cc)) +
        cc * (n - rc) / (1.0 * n * n) * (1 + solve(rc, cc - 1)) +
        rc * cc / (1.0 * n * n) * (1 + solve(rc - 1, cc - 1));
  if (rc * cc != n * n)
    ret += (n - rc) * (n - cc) / (1.0 * n * n),
        ret /= 1 - (n - rc) * (n - cc) / (1.0 * n * n);
  return ret;
}
bool rr[2010];
bool rc[2010];
int m, cr, cc;
int main() {
  scanf("%d", &n);
  cr = cc = n;
  scanf("%d", &m);
  for (int i = 0; i < m; ++i) {
    int x, y;
    scanf("%d", &x), scanf("%d", &y);
    if (!rr[x]) --cr;
    if (!rc[y]) --cc;
    rr[x] = rc[y] = 1;
  }
  memset(memo, -1, sizeof memo);
  printf("%.9lf\n", solve(cr, cc));
}
