#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
typedef long long ll;
const ll N=605,mo=1e9+7;
ll a[N][N],b[N],c[N],ans,n,k;
ll f[N][N]; 
int main(){
	cin>>n>>k;n*=2;
	for (int i=1;i<=k;i++){
		int x,y;
		scanf("%d%d",&x,&y);
		a[x][y]++;
		a[y][x]++;
		b[x]++;
		b[y]++;
	}
	c[0]=1;
	for (int i=1;i<=n;i++){
		for (int j=1;j<=n;j++){
			a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1];
		}
		b[i]+=b[i-1];
		if (i>1)c[i]=c[i-2]*(i-1)%mo;
	}
	ans=c[n-2*k];
	for (int i=1;i<=n;i++){
		for (int j=i+1;j<n;j++){
			int s1=a[j][j]+a[i-1][i-1]-a[j][i-1]-a[i-1][j],s2=b[j]-b[i-1];
			if (s1!=s2)continue;
			f[i][j]=c[j-i+1-s1];
			for (int l=i+1;l<j;l++)
				f[i][j]=(f[i][j]-f[i][l]*c[j-l-b[j]+b[l]])%mo;
			(ans+=f[i][j]*c[n-(j-i+1-s1)-2*k])%=mo;
		}
	}
	ans=(ans%mo+mo)%mo;
	cout<<ans<<endl;
}