#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7;
void solve1to6(){
	int n,k;
	cin>>n>>k;
	vector<vector<int>> G(n);
	vector<pair<int,int>> e;
	for(int i=1;i<n;i++){
		int u,v;
		cin>>u>>v;
		u--;
		v--;
		G[u].push_back(v);
		G[v].push_back(u);
		e.emplace_back(u,v);
	}
	vector<int> jc{1},inv(n);
	for(int i=1;i<n;i++){
		jc.push_back(jc.back()*i%mod);
	}
	int ans=1;
	int e1;
	cin>>e1;
	e1--;
	for(int i=0;i<n;i++){
		if((int)G[i].size()==1){
			continue;
		}
		ans=ans*jc[G[i].size()-1];
		ans%=mod;
	}
	cout<<ans<<'\n';
}
signed main(){
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	ios::sync_with_stdio(false);
	int c,qwq=1;
	cin>>c>>qwq;
	while(qwq--){
		if(c<=6){
			solve1to6();
		}else{
			solve1to6(); // ???
		}
	}
	return 0;
}
