#include<bits/stdc++.h>
using namespace std;
int main()
{
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	//froepon
	int c,t,n,v,sr;
	long long ans=0,sum,mod=1e9+7,ssum;
	scanf("%d%d",&c,&t);
	if(c==18) for(int i=1;i<=t;i++) printf("1\n");
	else if(c>=19&&c<=21)
	{
		for(int i=1;i<=t;i++)
		{
			scanf("%d%d",&n,&v);
			for(int j=1;j<=n-1;j++) scanf("%d%d",&sr,&sr);
			for(int j=1;j<=v;j++) scanf("%d",&sr);
			sum=n;
			ans=1;
			for(long long j=1;j<=n-1;j++)
			{
				ssum=j/__gcd(j,sum);
				sum/=__gcd(j,sum);
				ans*=ssum;
				ans%=mod;
			}
			printf("%lld\n",ans);
		}
	}
}
