#include<stdio.h>
#include<string.h>
int g[26][26],flag[26][26];
void floyd()
{
int i,j,k;
for(k=0;k<26;k++)
for(i=0;i<26;i++)
for(j=0;j<26;j++)
if(flag[i][k]&&flag[k][j])
flag[i][j]=1;
}
int main()
{
int n,m,i,j,x,y,c=0,bj;
char s[4];
scanf("%d",&n);
while(n--)
{
memset(g,0,sizeof(g));
memset(flag,0,sizeof(flag));
scanf("%d",&m);
while(m--)
{
scanf("%s",s);
x=s[0]-'A';
y=s[2]-'A';
if(s[1]=='<')
{
g[x][y]=1;
flag[x][y]=1;
}
else
{
g[y][x]=1;
flag[y][x]=1;
}
}
floyd();
printf("Case %d:\n",++c);
for(bj=i=0;i<26;i++)
for(j=0;j<26;j++)
if(!g[i][j]&&flag[i][j])
{
bj=1;
printf("%c<%c\n",i+'A',j+'A');
}
if(!bj)
printf("NONE\n");
}
return 0;
}
/**************************************************************
Problem: 2132
User: admin
Language: C
Result: Accepted
Time:13 ms
Memory:1148 kb
****************************************************************/