#include<bits/stdc++.h>
using namespace std;

typedef long long lint;
typedef long double louble;

#define lf ('\n')

template<typename T1,typename T2> inline T1 max(T1 a,T2 b){return a<b?b:a;}
template<typename T1,typename T2> inline T1 min(T1 a,T2 b){return a<b?a:b;}

namespace ae86
{
	const int bufl = 1<<15;
	
	char buf[bufl],*s=buf,*t=buf;
	
	inline int fetch()
	{
		if(s==t){t=(s=buf)+fread(buf,1,bufl,stdin);if(s==t)return EOF;}
		return *s++;
	}
	
	inline int ty()
	{
		int a=0,b=1,c=fetch();
		while(!isdigit(c))b^=c=='-',c=fetch();
		while(isdigit(c))a=a*10+c-48,c=fetch();
		return b?a:-a;
	}
}
using ae86::ty;

const int _ = 53 , __ = _<<1;

struct edges
{
	set<int> e[_];
	inline set<int>& operator [] (int x){return e[x];}
	inline void adde(int a,int b){e[a].emplace(b);}
	inline void addde(int a,int b){adde(a,b),adde(b,a);}
	void cls(){for(auto &i:e)i.clear();}
}e1,e2;

int n,du[_];
int fa1[_],fa2[_];
int col1[_],col2[_];

void dfsfa2(int x,int ff){fa2[x]=ff;for(auto b:e2[x])if(b!=ff)dfsfa2(b,x);}

int nowans;

void dfs(int x)
{
	col1[x]=col2[x]=2,nowans--;
	for(auto b2:e2[x])
	{
		if(b2==fa2[x])continue;
		if(e1[x].count(b2))dfs(b2);
		else col2[b2]=1;
	}
}

inline int able()
{
	for(int i=1;i<nowans;i++)
	{
		int x=0;
		for(int j=1;j<=n;j++)if(col1[j]==1 && col2[j]==1){x=j;break;}
		if(!x)return 0;
		col1[x]=col2[x]=2;
		for(auto b:e1[x])if(--du[b]==1 && col1[b]==0)col1[b]=1;
		for(auto b:e2[x])if(b!=fa2[x])col2[b]=1;
	}
	return 1;
}

int duBuf[_];

void finder()
{
	e1.cls(),e2.cls();
	memset(duBuf,0,sizeof(duBuf));
	
	n=ty();
	for(int i=1,a,b;i<n;i++)a=ty(),b=ty(),e1.addde(a,b),duBuf[a]++,duBuf[b]++;
	for(int i=1,a,b;i<n;i++)a=ty(),b=ty(),e2.addde(a,b);
	
	if(n<=2){cout<<0<<lf;return;}

	int ans=1e9;
	for(int i=1;i<=n;i++)
	{
		memset(col1,0,sizeof(col1)),memset(col2,0,sizeof(col2));
		nowans=n,col2[i]=1,dfsfa2(i,0),memcpy(du,duBuf,sizeof(du));
		for(int j=1;j<=n;j++)if(du[j]==1)col1[j]=1;
		if(able()){ans=n;break;}
	}
	for(int i=1;i<=n;i++)
	{
		memset(col1,0,sizeof(col1)),memset(col2,0,sizeof(col2));
		nowans=n,dfsfa2(i,0),dfs(i),memcpy(du,duBuf,sizeof(du));
		for(int j=1;j<=n;j++)if(!col1[j] && du[j]==1)col1[j]=1;
		if(nowans<ans && able())ans=nowans;
	}

	if(ans>n)ans=-1;
	cout<<ans<<lf;
}

int main()
{//
	ios::sync_with_stdio(0),cout.tie(0);
	
	int t=ty();
	while(t--)finder();

	return 0;
}
