#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
using namespace std;
const long long mod=1000000007;
long long c,t;
long long n,k;
long long u[110000],v[110000],e[110000];
long long jc[110000];
int main()
{
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	jc[0]=1;
	for(int i=1;i<=100000;i++) jc[i]=jc[i-1]*i%mod;
	scanf("%lld%lld",&c,&t);
	while(t--)
	{
		scanf("%lld%lld",&n,&k);
//		for(int i=1;i<=n-1;i++)
//		{
//			scanf("%lld%lld",u+i,v+i);
//		}
//		for(int i=1;i<=k;i++)
//		{
//			scanf("%lld",e+i);
//		}
		if(c==18)
		{
			printf("1\n");
			continue;
		}
		if(c>=19&&c<=21)
		{
			printf("%lld\n",((k*jc[n-2]%mod-k*(k-1)%mod*500000004%mod*jc[n-3]%mod)%mod+mod)%mod);
		}
	}
	return 0;
}
