#include <iostream>
#include <cstdio>
#include <map>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
//英语 看博友好分析 博友程序代码更少
int da[110][2];//存储id
map<int,int> mp;//i->id
map<int,int> pm;//id->i
int n;
int hs[110];
bool check(int x)
{
memset(hs,0,sizeof(hs));
int flag=0;
hs[x]=-1;
for(int i=0;i<n;i++)
{
if(i!=x)
{
int a=pm[abs(da[i][0])];
int t=1;
if(da[i][0]<0)
{
t=-1;
}
if(hs[a]!=0 && hs[a]!=t)
{
flag=1;
}else
{
hs[a]=t;
}
int b=pm[abs(da[i][1])];
t=1;
if(da[i][1]<0)
{
t=-1;
}
if(hs[b]!=0 && hs[b]!=t)
{
flag=1;
}else
{
hs[b]=t;
}
if(hs[a]<0 && hs[b]<0)//
{
flag=1;
}
}
}
int js=0;
for(int i=0;i<n;i++)
{
if(hs[i]==-1)
{
js++;
}
}
if(js>1)//
{
flag=1;
}
if(flag==0)
{
return true;
}else
{
return false;
}
}
int main()
{
int T;
cin>>T;
while(T--)
{
cin>>n;
for(int i=0;i<n;i++)
{
int id,a,b;
char ca,cb;
cin>>id>>a>>ca>>b>>cb;
mp[i]=id;
pm[id]=i;
da[i][0]=a;
if(ca=='N')
{
da[i][0]=-a;
}
da[i][1]=b;
if(cb=='N')
{
da[i][1]=-b;
}
}
int js=0;
int ans=-1;
for(int i=0;i<n;i++)
{
if(check(i))
{
js++;
ans=i;
}
}
if(js==1)
{
cout<<mp[ans]<<endl;
}else
{
cout<<"impossible\n";
}
}
return 0;
}