#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
int N;
int R;
int S,T;
int pos[114514];
int bit[(1<<18)+2];
ll kai[114514];
ll mod=1000000007;
int sum(int i){
	int s=0;
	while(i>0){
		s+=bit[i];
		i-=i&-i;
	}
	return s;
}
void add(int i){
	while(i<=(1<<18)){
		bit[i]++;
		i+=i&-i;
	}
}
int main()
{
	while(true){
		scanf("%d",&N);
		for(int i=0;i<N;i++){
			pos[i]=i;
		}
		for(int i=0;i<(1<<18)+2;i++){
			bit[i]=0;
		}
		if(N==0)return 0;
		scanf("%d",&R);
		for(int i=0;i<R;i++){
			scanf("%d%d",&S,&T);S--;T--;
			swap(pos[S],pos[T]);
		}
		kai[1]=1;
		for(int i=2;i<114514;i++){
			kai[i]=(kai[i-1]*(ll)i)%mod;
		}
		ll ans=0;
		for(int i=N-1;i>=0;i--){
			ans+=(kai[N-i-1]*(ll)sum(pos[i]))%mod;
			//printf("%d\n",sum(pos[i]));
			add(pos[i]+1);ans%=mod;
		}
		printf("%lld\n",ans);
	}
}