#include<bits/stdc++.h>
using namespace std;
const long long op=1e9+7;
long long c,t,n,k,ans;
long long u[1000001],v[1001001],e[1001001];
int main(){
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0); 
	cin>>c>>t;
	while(t--){
		ans=0;
		cin>>n>>k;
		for(int i=1;i<n;i++){
			cin>>u[i]>>v[i];
		}
		for(int i=1;i<=k;i++){
			cin>>e[i];
		}
		if(u[1]+1==v[1] && u[2]+1==v[2]){
			cout<<1<<'\n';
		}else {
			ans=1;
			for(int i=1;i<n-1;i++){
				ans=(ans%op)*(i%op)%op;
			}
			cout<<((ans%op)*((k)%op))%op<<"\n";
		}
	}	
}

