#include<bits/stdc++.h>
#define int long long
using namespace std;
int c,t,n,k,x,y,mod=1e9+7;
int pd(int n,int m)
{
	int s=1;
	for(register int i=1;i<=m;i++)
		s=s*(n-i+1)/i%mod;
	return s;
}
//vector<int> v[M];
signed main()
{
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	cin>>c>>t;
	while(t--)
	{
		cin>>n>>k;
		for(register int i=1;i<n;i++)
		{
			cin>>x>>y;
//			v[x].push_back(y);
//			v[y].push_back(x);
		}
		for(register int i=1;i<=k;i++)cin>>x;
		if(c==18)
		{
			cout<<"1\n";
			continue;
		}
		else if(c>=19&&c<=21)
		{
			cout<<k*pd((n-1)*(n-2)/2,n-2)%mod<<'\n';
			continue;
		}
		else cout<<k*n%mod<<'\n';
//		for(register int i=1;i<=n;i++)v[i].clear();
	}
	return 0;
}
