#include <bits/stdc++.h>
using namespace std;
int m, col[2010], row[2010], hang, lie;
double dp[2010][2010], n;
int main() {
  scanf("%lf%d", &n, &m);
  hang = lie = n;
  for (int i = 1; i <= m; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    if (!row[x]) row[x] = 1, hang--;
    if (!col[y]) col[y] = 1, lie--;
  }
  dp[0][0] = 0;
  for (int i = 1; i <= n; i++) {
    dp[i][0] = dp[i - 1][0] + double(n / i);
    dp[0][i] = dp[0][i - 1] + double(n / i);
  }
  for (int i = 1; i <= hang; i++)
    for (int j = 1; j <= lie; j++) {
      dp[i][j] = n * n + dp[i - 1][j - 1] * i * j + dp[i][j - 1] * j * (n - i) +
                 dp[i - 1][j] * i * (n - j);
      dp[i][j] /= n * n - (n - i) * (n - j);
    }
  printf("%.10lf", dp[hang][lie]);
  return 0;
}
