#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct aaa{
	ll x,y;
}a[1010];
const ll p=1e9+7;
ll ans,n,m,i,j,l,r,flag,sz,in,out,b[1010],f[602][602],g[602][602];
int main(){
	scanf("%lld%lld",&n,&m);
	for(i=1;i<=m;i++)scanf("%lld%lld",&a[i].x,&a[i].y);
	b[0]=1;
	for(i=1;i<=n;i++)b[i]=b[i-1]*(i*2-1)%p;
	for(l=n*2;l;l--)
	 for(r=l;r<=n*2;r++)if((r-l+1)%2==0){
	 	flag=in=out=0;
	 	for(i=1;i<=m;i++){
	 		sz=0;
		  if(a[i].x>=l&&a[i].x<=r)sz++;
		  if(a[i].y>=l&&a[i].y<=r)sz++;
		  if(sz==1)flag=1;
		  if(sz==0)out++;
		   else in++;
	    }
	    if(flag)continue;
	    f[l][r]=g[l][r]=b[(r-l+1)/2-in];
	    for(i=l;i<r;i++)f[l][r]=(f[l][r]-f[l][i]*g[i+1][r]%p+p)%p;
	    ans=(ans+f[l][r]*b[n-(r-l+1)/2-out])%p;
	 }
	printf("%lld",ans);
}