#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
bool IsFake(char ch,bool light);
char result[3][5];
char Left[3][7];
char Right[3][7];
int main(){
char ch;
int i,t;
scanf("%d",&t);
while(t--){
for(i=0;i<3;++i)
cin>>Left[i]>>Right[i]>>result[i];
for(ch='A';ch<='L';ch++){
if(IsFake(ch,true)){
cout<<ch<<" is the counterfeit coin and it is light.\n";
break;
}
else if(IsFake(ch,false)){
cout<<ch<<" is the counterfeit coin and it is heavy.\n";
break;
}
}
}
return 0;
}
bool IsFake(char ch,bool light){
int i;
for(i=0;i<3;i++){
char *pleft,*pright;
if(light){//假币更轻,则要么相平,要么有假币的那边轻
pleft=Left[i];
pright=Right[i];
}
else{
//假币更沉,则要么相平,要么有假币的那边沉;此时把称量结果左右对换(是为了让后面switch语句里的话不管假币轻还是假币重都仍然正确,不用把switch再写一遍了)
pleft=Right[i];
pright=Left[i];
}
switch (result[i][0]) {//假设假币轻
case 'u'://右边高,即左边沉,右边轻;假币应该在右边
if(strchr(pright, ch)==NULL)
return false;
break;
case 'e'://平
if(strchr(pleft,ch)||strchr(pright,ch))
return false;
break;
case 'd'://右边低,即左边轻,右边沉;假币应该在左边
if(strchr(pleft,ch)==NULL)
return false;
break;
}
}
return true;
}