#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e5+10;
const int MOD=1e9+7;
int c,T;
int n,k;
int a[MAXN];
struct edges{
	int u,v,nxt;
}e[MAXN<<1];
int head[MAXN],tot;
void add(int u,int v)
{
	e[++tot].v=v;
	e[tot].nxt=head[u];
	head[u]=tot;
	return;
}
void work_B()
{
	printf("%d",n);
}
signed main()
{
	freopen("traverse.in","r",stdin);
	freopen("traverse.out","w",stdout);
	scanf("%d %d",&c,&T);
	while(T--)
	{
		scanf("%d %d",&n,&k);
		bool flagB=true;
		for(int i=1,u,v;i<n;i++)
		{
			scanf("%d %d",&u,&v);
			if(u!=1 || v!=i+1) flagB=false;
			add(u,v),add(v,u); 
		}
		for(int i=1;i<=k;i++)
		{
			scanf("%d",&a[i]);
		}
		if(flagB) work_B(); 
	}
	return 0;
} 
