#include<bits/stdc++.h>
#define int long long
using namespace std;
const int Mod=1e9+7;
vector<int> g[101000];
int e[101000]; 
signed main()
{
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int C,T;
	cin>>C>>T;
	while(T--)
	{
		memset(g,0,sizeof(g));
		int n,k;
		cin>>n>>k;
		for(int i=1;i<n;i++)
		{
			int u,v;
			cin>>u>>v;
			g[u].push_back(v);
			g[v].push_back(u);
		} 
		for(int i=1;i<=k;i++)cin>>e[i];
		if(C==18)
		{
			cout<<1<<endl;
			continue; 
		}
		if(C<=21&&C>=19)
		{
			int ansx=1,ansy=1,ansz=1;
			int cnt=(1+n-2)*(n-2)/2;
			for(int i=1;i<=cnt;i++)
			{
				ansx=(ansx*i)%Mod;
			}	
			for(int i=1;i<=n-2;i++)
			{
				ansy=(ansy*i)%Mod;

			}
			for(int i=1;i<=cnt-n+2;i++)
			{
				ansz=(ansz*i)%Mod;
			}
			cout<<(ansx/(ansy*ansz))%Mod<<endl; 
		}
	}
	return 0;
}
