// TREEISO
#include<bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i(a);i<=(b);++i)
#define req(i,a,b) for(int i(a);i>=(b);--i)
#define sort stable_sort
using namespace std;
char buf[1<<23],*p1=buf,*p2=buf;
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
template<typename TP> inline TP read(TP &num)
{
TP x=0;
int f=0;
char ch=getchar();
while(ch<48||ch>57) f|=ch=='-',ch=getchar();
while(48<=ch&&ch<=57) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
return num=f?-x:x;
}
template<typename ...Args> inline void read(Args &...args)
{
(read(args),...);
}
template<typename TP> inline void write(TP x)
{
(x<0)?(putchar('-'),x=-x):0;
(x>9)?(write(x/10),0):0;
putchar((x%10)^48);
}
template<typename TP> inline void writeln(TP x)
{
write<TP>(x);
puts("");
}
int T,m,n[3];
pair<int,int> cen[3];
signed main()
{
read(T);
while(T--)
{
read(n[0]);
vector<vector<vector<int>>> a(3);
rep(i,1,2)
{
n[i]=n[i-1];
a[i].resize(n[i]+5);
rep(j,1,n[i]-1)
{
int u,v; read(u,v);
a[i][u].push_back(v);
a[i][v].push_back(u);
}
vector<int> siz(n[i]+1);
function<void(int,int)> dfs=[&](int u,int fa)
{
siz[u]=1;
for(auto v:a[i][u]) if(v!=fa) dfs(v,u),siz[u]+=siz[v];
}; dfs(1,0);
int mn=1e18;
cen[i]={0,0};
function<void(int,int)> centroid=[&](int u,int fa)
{
int mx=n[i]-siz[u];
for(auto v:a[i][u]) if(v!=fa) mx=max(mx,siz[v]);
if(mx<mn) mn=mx,cen[i].first=u,cen[i].second=0;
else if(mx==mn) cen[i].second=u;
for(auto v:a[i][u]) if(v!=fa) centroid(v,u);
}; centroid(1,0);
}
map<vector<int>,int> mp;
int cur=0;
function<int(int,int,int,int)> calc=[&](int id,int u,int fa,int spec)
{
vector<int> v={0};
if(spec==u) v.push_back(-1);
// cerr<<id<<" "<<u<<" "<<fa<<" "<<spec<<endl;
for(auto vv:a[id][u]) if(vv!=fa) v.push_back(calc(id,vv,u,-1));
sort(v.begin(),v.end());
if(!mp.count(v)) mp[v]=++cur;
return mp[v];
};
auto isomorphic=[&](int i,int j)->bool
{
// cerr<<"Checking isomorphism between tree "<<i<<" and tree "<<j<<endl;
if((!!cen[i].second)!=(!!cen[j].second)) return 0;
if(!cen[i].second) return calc(i,cen[i].first,0,-1)==calc(j,cen[j].first,0,-1);
else
{
int rti=++n[i],rtj=++n[j];
// cerr<<"New root "<<rti<<" for tree "<<i<<" and "<<rtj<<" for tree "<<j<<endl;
auto orig_i=a[i],orig_j=a[j];
a[i][cen[i].first].erase(remove(a[i][cen[i].first].begin(),a[i][cen[i].first].end(),cen[i].second),a[i][cen[i].first].end());
a[i][cen[i].second].erase(remove(a[i][cen[i].second].begin(),a[i][cen[i].second].end(),cen[i].first),a[i][cen[i].second].end());
a[j][cen[j].first].erase(remove(a[j][cen[j].first].begin(),a[j][cen[j].first].end(),cen[j].second),a[j][cen[j].first].end());
a[j][cen[j].second].erase(remove(a[j][cen[j].second].begin(),a[j][cen[j].second].end(),cen[j].first),a[j][cen[j].second].end());
a[i][rti].push_back(cen[i].first),a[i][cen[i].first].push_back(rti);
a[i][rti].push_back(cen[i].second),a[i][cen[i].second].push_back(rti);
a[j][rtj].push_back(cen[j].first),a[j][cen[j].first].push_back(rtj);
a[j][rtj].push_back(cen[j].second),a[j][cen[j].second].push_back(rtj);
// cerr<<"add success "<<rti<<" "<<rtj<<endl;
int val=calc(i,rti,0,rti)==calc(j,rtj,0,rtj);
a[i]=orig_i,a[j]=orig_j;
--n[i],--n[j];
return val;
}
return 0;
};
puts(isomorphic(1,2)?"YES":"NO");
}
return 0;
}
Ly8gVFJFRUlTTwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSByZXAoaSxhLGIpIGZvcihpbnQgaShhKTtpPD0oYik7KytpKQojZGVmaW5lIHJlcShpLGEsYikgZm9yKGludCBpKGEpO2k+PShiKTstLWkpCiNkZWZpbmUgc29ydCBzdGFibGVfc29ydAp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjaGFyIGJ1ZlsxPDwyM10sKnAxPWJ1ZiwqcDI9YnVmOwojZGVmaW5lIGdldGNoYXIoKSAocDE9PXAyJiYocDI9KHAxPWJ1ZikrZnJlYWQoYnVmLDEsMTw8MjEsc3RkaW4pLHAxPT1wMik/RU9GOipwMSsrKQp0ZW1wbGF0ZTx0eXBlbmFtZSBUUD4gaW5saW5lIFRQIHJlYWQoVFAgJm51bSkKewoJVFAgeD0wOwoJaW50IGY9MDsKCWNoYXIgY2g9Z2V0Y2hhcigpOwoJd2hpbGUoY2g8NDh8fGNoPjU3KSBmfD1jaD09Jy0nLGNoPWdldGNoYXIoKTsKCXdoaWxlKDQ4PD1jaCYmY2g8PTU3KSB4PSh4PDwxKSsoeDw8MykrKGNoXjQ4KSxjaD1nZXRjaGFyKCk7CglyZXR1cm4gbnVtPWY/LXg6eDsKfQp0ZW1wbGF0ZTx0eXBlbmFtZSAuLi5BcmdzPiBpbmxpbmUgdm9pZCByZWFkKEFyZ3MgJi4uLmFyZ3MpCnsKCShyZWFkKGFyZ3MpLC4uLik7Cn0KdGVtcGxhdGU8dHlwZW5hbWUgVFA+IGlubGluZSB2b2lkIHdyaXRlKFRQIHgpCnsKCSh4PDApPyhwdXRjaGFyKCctJykseD0teCk6MDsKCSh4PjkpPyh3cml0ZSh4LzEwKSwwKTowOwoJcHV0Y2hhcigoeCUxMCleNDgpOwp9CnRlbXBsYXRlPHR5cGVuYW1lIFRQPiBpbmxpbmUgdm9pZCB3cml0ZWxuKFRQIHgpCnsKCXdyaXRlPFRQPih4KTsKCXB1dHMoIiIpOwp9CmludCBULG0sblszXTsKcGFpcjxpbnQsaW50PiBjZW5bM107CnNpZ25lZCBtYWluKCkKewoJcmVhZChUKTsKCXdoaWxlKFQtLSkKCXsKCQlyZWFkKG5bMF0pOwoJCXZlY3Rvcjx2ZWN0b3I8dmVjdG9yPGludD4+PiBhKDMpOwoJCXJlcChpLDEsMikKCQl7CgkJCW5baV09bltpLTFdOwoJCQlhW2ldLnJlc2l6ZShuW2ldKzUpOwoJCQlyZXAoaiwxLG5baV0tMSkKCQkJewoJCQkJaW50IHUsdjsgcmVhZCh1LHYpOwoJCQkJYVtpXVt1XS5wdXNoX2JhY2sodik7CgkJCQlhW2ldW3ZdLnB1c2hfYmFjayh1KTsKCQkJfQoJCQl2ZWN0b3I8aW50PiBzaXoobltpXSsxKTsKCQkJZnVuY3Rpb248dm9pZChpbnQsaW50KT4gZGZzPVsmXShpbnQgdSxpbnQgZmEpCgkJCXsKCQkJCXNpelt1XT0xOwoJCQkJZm9yKGF1dG8gdjphW2ldW3VdKSBpZih2IT1mYSkgZGZzKHYsdSksc2l6W3VdKz1zaXpbdl07CgkJCX07IGRmcygxLDApOwoJCQlpbnQgbW49MWUxODsKCQkJY2VuW2ldPXswLDB9OwoJCQlmdW5jdGlvbjx2b2lkKGludCxpbnQpPiBjZW50cm9pZD1bJl0oaW50IHUsaW50IGZhKQoJCQl7CgkJCQlpbnQgbXg9bltpXS1zaXpbdV07CgkJCQlmb3IoYXV0byB2OmFbaV1bdV0pIGlmKHYhPWZhKSBteD1tYXgobXgsc2l6W3ZdKTsKCQkJCWlmKG14PG1uKSBtbj1teCxjZW5baV0uZmlyc3Q9dSxjZW5baV0uc2Vjb25kPTA7CgkJCQllbHNlIGlmKG14PT1tbikgY2VuW2ldLnNlY29uZD11OwoJCQkJZm9yKGF1dG8gdjphW2ldW3VdKSBpZih2IT1mYSkgY2VudHJvaWQodix1KTsKCQkJfTsgY2VudHJvaWQoMSwwKTsKCQl9CgkJbWFwPHZlY3RvcjxpbnQ+LGludD4gbXA7CgkJaW50IGN1cj0wOwoJCWZ1bmN0aW9uPGludChpbnQsaW50LGludCxpbnQpPiBjYWxjPVsmXShpbnQgaWQsaW50IHUsaW50IGZhLGludCBzcGVjKQoJCXsKCQkJdmVjdG9yPGludD4gdj17MH07CgkJCWlmKHNwZWM9PXUpIHYucHVzaF9iYWNrKC0xKTsKCQkJLy8gY2Vycjw8aWQ8PCIgIjw8dTw8IiAiPDxmYTw8IiAiPDxzcGVjPDxlbmRsOwoJCQlmb3IoYXV0byB2djphW2lkXVt1XSkgaWYodnYhPWZhKSB2LnB1c2hfYmFjayhjYWxjKGlkLHZ2LHUsLTEpKTsKCQkJc29ydCh2LmJlZ2luKCksdi5lbmQoKSk7CgkJCWlmKCFtcC5jb3VudCh2KSkgbXBbdl09KytjdXI7CgkJCXJldHVybiBtcFt2XTsKCQl9OwoJCWF1dG8gaXNvbW9ycGhpYz1bJl0oaW50IGksaW50IGopLT5ib29sCgkJewoJCQkvLyBjZXJyPDwiQ2hlY2tpbmcgaXNvbW9ycGhpc20gYmV0d2VlbiB0cmVlICI8PGk8PCIgYW5kIHRyZWUgIjw8ajw8ZW5kbDsKCQkJaWYoKCEhY2VuW2ldLnNlY29uZCkhPSghIWNlbltqXS5zZWNvbmQpKSByZXR1cm4gMDsKCQkJaWYoIWNlbltpXS5zZWNvbmQpIHJldHVybiBjYWxjKGksY2VuW2ldLmZpcnN0LDAsLTEpPT1jYWxjKGosY2VuW2pdLmZpcnN0LDAsLTEpOwoJCQllbHNlCgkJCXsKCQkJCWludCBydGk9KytuW2ldLHJ0aj0rK25bal07CgkJCQkvLyBjZXJyPDwiTmV3IHJvb3QgIjw8cnRpPDwiIGZvciB0cmVlICI8PGk8PCIgYW5kICI8PHJ0ajw8IiBmb3IgdHJlZSAiPDxqPDxlbmRsOwoJCQkJYXV0byBvcmlnX2k9YVtpXSxvcmlnX2o9YVtqXTsKCQkJCWFbaV1bY2VuW2ldLmZpcnN0XS5lcmFzZShyZW1vdmUoYVtpXVtjZW5baV0uZmlyc3RdLmJlZ2luKCksYVtpXVtjZW5baV0uZmlyc3RdLmVuZCgpLGNlbltpXS5zZWNvbmQpLGFbaV1bY2VuW2ldLmZpcnN0XS5lbmQoKSk7CgkJCQlhW2ldW2NlbltpXS5zZWNvbmRdLmVyYXNlKHJlbW92ZShhW2ldW2NlbltpXS5zZWNvbmRdLmJlZ2luKCksYVtpXVtjZW5baV0uc2Vjb25kXS5lbmQoKSxjZW5baV0uZmlyc3QpLGFbaV1bY2VuW2ldLnNlY29uZF0uZW5kKCkpOwoJCQkJYVtqXVtjZW5bal0uZmlyc3RdLmVyYXNlKHJlbW92ZShhW2pdW2NlbltqXS5maXJzdF0uYmVnaW4oKSxhW2pdW2NlbltqXS5maXJzdF0uZW5kKCksY2VuW2pdLnNlY29uZCksYVtqXVtjZW5bal0uZmlyc3RdLmVuZCgpKTsKCQkJCWFbal1bY2VuW2pdLnNlY29uZF0uZXJhc2UocmVtb3ZlKGFbal1bY2VuW2pdLnNlY29uZF0uYmVnaW4oKSxhW2pdW2NlbltqXS5zZWNvbmRdLmVuZCgpLGNlbltqXS5maXJzdCksYVtqXVtjZW5bal0uc2Vjb25kXS5lbmQoKSk7CgkJCQlhW2ldW3J0aV0ucHVzaF9iYWNrKGNlbltpXS5maXJzdCksYVtpXVtjZW5baV0uZmlyc3RdLnB1c2hfYmFjayhydGkpOwoJCQkJYVtpXVtydGldLnB1c2hfYmFjayhjZW5baV0uc2Vjb25kKSxhW2ldW2NlbltpXS5zZWNvbmRdLnB1c2hfYmFjayhydGkpOwoJCQkJYVtqXVtydGpdLnB1c2hfYmFjayhjZW5bal0uZmlyc3QpLGFbal1bY2VuW2pdLmZpcnN0XS5wdXNoX2JhY2socnRqKTsKCQkJCWFbal1bcnRqXS5wdXNoX2JhY2soY2VuW2pdLnNlY29uZCksYVtqXVtjZW5bal0uc2Vjb25kXS5wdXNoX2JhY2socnRqKTsKCQkJCS8vIGNlcnI8PCJhZGQgc3VjY2VzcyAiPDxydGk8PCIgIjw8cnRqPDxlbmRsOwoJCQkJaW50IHZhbD1jYWxjKGkscnRpLDAscnRpKT09Y2FsYyhqLHJ0aiwwLHJ0aik7CgkJCQlhW2ldPW9yaWdfaSxhW2pdPW9yaWdfajsKCQkJCS0tbltpXSwtLW5bal07CgkJCQlyZXR1cm4gdmFsOwoJCQl9CgkJCXJldHVybiAwOwoJCX07CgkJcHV0cyhpc29tb3JwaGljKDEsMik/IllFUyI6Ik5PIik7Cgl9CglyZXR1cm4gMDsKfQ==