#include <iostream>
using namespace std;
#include<bits/stdc++.h>
vector<vector<int>> adj;
int arr[(int) 2e5 + 2];
int dis[(int) 2e5 + 2];
int n;
queue<pair<int,int>>pq ;
void bfs()
{
while(!pq.empty())
{
auto pt = pq.front() ;
pq.pop() ;
if(pt.second>dis[pt.first])
{
continue;
}
dis[pt.first]=pt.second ;
for(auto child:adj[pt.first])
{
if(dis[child]<=pt.second)
{
continue;
}
else
{
pq.push({child,pt.second+1}) ;
}
}
}
}
bool dfs(int node,int par, int distance)
{
if(dis[node]>distance&&node!=1&&adj[node].size()<=1)
{
return true ;
}
bool flag=false ;
for(auto child:adj[node])
{
if(par!=child)
{
flag|=dfs(child,node,distance+1) ;
}
}
return flag ;
}
int main() {
int t;
cin >>
t;
while (t--) {
cin >> n;
adj.clear();
adj.resize(n + 1);
for (int i = 1; i <= n; i++) {
dis[i] = 1e9;
}
int x;
cin >> x;
while(!pq.empty())
{
pq.pop() ;
}
for (int i = 0; i < x; i++) {
cin >> arr[i];
dis[arr[i]]=0 ;
pq.push({arr[i],0}) ;
}
for (int i = 0; i < n - 1; i++) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
bfs() ;
if( dfs(1,-1,0) )
{
cout<<"YES"<<endl ;
}
else
{
cout<<"NO"<<endl ;
}
/****************
* lets do it
*/
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+Cgp2ZWN0b3I8dmVjdG9yPGludD4+IGFkajsKaW50IGFyclsoaW50KSAyZTUgKyAyXTsKaW50IGRpc1soaW50KSAyZTUgKyAyXTsKaW50IG47CnF1ZXVlPHBhaXI8aW50LGludD4+cHEgOwp2b2lkIGJmcygpCnsKICAgIHdoaWxlKCFwcS5lbXB0eSgpKQogICAgewogICAgICAgIGF1dG8gcHQgPSBwcS5mcm9udCgpIDsKICAgICAgICBwcS5wb3AoKSA7CiAgICAgICAgaWYocHQuc2Vjb25kPmRpc1twdC5maXJzdF0pCiAgICAgICAgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgZGlzW3B0LmZpcnN0XT1wdC5zZWNvbmQgOwogICAgICAgIGZvcihhdXRvIGNoaWxkOmFkaltwdC5maXJzdF0pCiAgICAgICAgewogICAgICAgICAgICBpZihkaXNbY2hpbGRdPD1wdC5zZWNvbmQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcHEucHVzaCh7Y2hpbGQscHQuc2Vjb25kKzF9KSA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KYm9vbCBkZnMoaW50IG5vZGUsaW50IHBhciwgaW50IGRpc3RhbmNlKQp7CiAgICBpZihkaXNbbm9kZV0+ZGlzdGFuY2UmJm5vZGUhPTEmJmFkaltub2RlXS5zaXplKCk8PTEpCiAgICB7CiAgICAgICAgcmV0dXJuIHRydWUgOwogICAgfQogICAgYm9vbCBmbGFnPWZhbHNlIDsKICAgIGZvcihhdXRvIGNoaWxkOmFkaltub2RlXSkKICAgIHsKICAgICAgICBpZihwYXIhPWNoaWxkKQogICAgICAgIHsKICAgICAgICAgICBmbGFnfD1kZnMoY2hpbGQsbm9kZSxkaXN0YW5jZSsxKSA7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGZsYWcgOwp9CgppbnQgbWFpbigpIHsKICAgIGludCB0OwogICAgY2luID4+CiAgICAgICAgdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICBhZGouY2xlYXIoKTsKCiAgICAgICAgYWRqLnJlc2l6ZShuICsgMSk7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgICAgIGRpc1tpXSA9IDFlOTsKICAgICAgICB9CiAgICAgICAgaW50IHg7CiAgICAgICAgY2luID4+IHg7CiAgICAgICAgd2hpbGUoIXBxLmVtcHR5KCkpCiAgICAgICAgewogICAgICAgICAgICBwcS5wb3AoKSA7CiAgICAgICAgfQogICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB4OyBpKyspIHsKICAgICAgICAgICAgY2luID4+IGFycltpXTsKICAgICAgICAgICAgZGlzW2FycltpXV09MCA7CiAgICAgICAgICAgIHBxLnB1c2goe2FycltpXSwwfSkgOwogICAgICAgIH0KCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgICAgIGludCB1LCB2OwogICAgICAgICAgICBjaW4gPj4gdSA+PiB2OwogICAgICAgICAgICBhZGpbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHUpOwogICAgICAgIH0KICAgICAgICBiZnMoKSA7CiAgICAgIGlmKCBkZnMoMSwtMSwwKSApCiAgICAgIHsKICAgICAgICAgIGNvdXQ8PCJZRVMiPDxlbmRsIDsKICAgICAgfQogICAgICBlbHNlCiAgICAgIHsKICAgICAgICAgIGNvdXQ8PCJOTyI8PGVuZGwgOwogICAgICB9CgoKLyoqKioqKioqKioqKioqKioKICogbGV0cyBkbyBpdAogKi8KICAgIH0KfQ==