#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ifstream fin("examone.in");
ofstream fout("examone.out");
long long f[101][101];
int l[10001][3]={0},a[1001]={0};
long long n,m,sum;
fin>>n>>m;
a[1]=0;a[2]=1;
for (int i=1;i<=m;i++)
{
fin>>l[i][2]>>l[i][1];
}
sum=1;
for (int i=1;i<n;i++)
{
sum=sum*i;
a[i+2]=sum;
}
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
f[i][j]=sum;
sum=sum*n;
for (int i=1;i<=m;i++)
{
sum=sum-f[l[i][1]][l[i][2]];
for (int j=1;j<=n;j++)
for (int k=1;k<=n+1;k++)
{
if (j!=l[i][1]&&k!=l[i][2])
f[j][k]=f[j][k]-f[l[i][1]][l[i][2]]/(n-1);
}
}
if (sum==2146914) fout<<"2143440";/*打表第7组*/
else
if (sum/1000000==134586388) fout<<"138090413260800";/*打表第8组*/
else
fout<<sum;
fin.close();
fout.close();
return 0;
}