#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL MOD=1e9+7;
const int N=1e6+5;
int cc,t;
int n,k,e[N];
struct Mp{
	int head[N],idx;
	int e[N];
	struct Edge{
		int v,next,id;
	}adj[N<<1];
	void ins(int x,int y,int z){
		adj[++idx].v=y;
		adj[idx].next=head[x];
		adj[idx].id=z;
		head[x]=idx;
	}
	void init(){
		idx=0;
		for(int i=1;i<=n;i++){
			head[i]=0;
		}
	}
}M1,M2;
bool pd[505][505];
int main(){
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	scanf("%d%d",&cc,&t);
	while(t--){
		scanf("%d%d",&n,&k);
		M1.init();M2.init();
		for(int i=1;i<n;i++){
			int u,v;
			scanf("%d%d",&u,&v);
			M1.ins(u,v,i);M1.ins(v,u,i);
		}
		for(int i=1;i<=k;i++)
			scanf("%d",&e[i]);
		for(int u=1;u<=n;u++){
			for(int j=M1.head[u];j;j=M1.adj[j].next){
				for(int k=M1.head[u];k;k=M1.adj[k].next){
					if(j==k)continue;
					M2.ins(M1.adj[j].id,M1.adj[k].id,0);
				}
			}
		}
	}
	return 0;
}
