}
return false;
}
bool Is_Win(N *p)
{
int eye;
int i,j;
memset(mark,0,sizeof(mark));
for(i = 1;i <= 14; ++i)
{
mark[p[i].ty][p[i].id]++;
}
eye = 0;
for(i = 1;i <= 4; ++i)
{
for(j = 1;j <= 9; ++j)
{
if(mark[i][j] == 2)
{
eye++;
}
if(mark[i][j] >= 5)
return false;
}
}
if(eye == 7)
{
return true;
}
for(i = 1;i <= 3 && 1 <= mark[i] && 1 <= mark[i] ; ++i)
;
if(i == 4)
{
for(i = 1;i <= 7 && 1 <= mark [i] ; ++i)
;
if(i == 8)
{
for(i = 1;i <= 3 ; ++i)
{
if(2 == mark[i] || 2 == mark[i] )
return true;
}
for(i = 1;i <= 7; ++i)
{
if(mark [i] == 2)
return true;
}
}
}
dfs_con = false;
return dfs(0,0,0,1,1);
}
int main()
{
int n,i;
int top;
scanf("%d",&n);
char c;
while(n--)
{
top = 0;
E temp;
for(i = 1;i <= 13; ++i)
{
scanf("%d%c",&s[i].id,&c);
if(c == 'm')
{
s[i].ty = 1;
}
else if(c == 's')
{
s[i].ty = 2;
}
else if(c == 'p')
{
s[i].ty = 3;
}
else if(c == 'c')
{
s[i].ty = 4;
}
}
for(i = 1;i <= 9; ++i)
{
s[14].id = i;
s[14].ty = 1;
if(Is_Win(s))
{
temp.id = i;
temp.ty = 'm';
st[top++] = temp;
}
}
for(i = 1;i <= 9; ++i)
{
s[14].id = i;
s[14].ty = 2;
if(Is_Win(s))
{
temp.id = i;
temp.ty = 's';
st[top++] = temp;
}
}
for(i = 1;i <= 9; ++i)
{
s[14].id = i;
s[14].ty = 3;
if(Is_Win(s))
{
temp.id = i;
temp.ty = 'p';
st[top++] = temp;
}
}
for(i = 1;i <= 7; ++i)
{
s[14].id = i;
s[14].ty = 4;
if(Is_Win(s))
{
temp.id = i;
temp.ty = 'c';
st[top++] = temp;
}
}
if(top == 0)
{
printf("Nooten\n");
}
else
{
printf("%d",top);
for(i = 0;i < top; ++i)
{
printf(" %d%c",st[i].id,st[i].ty);
}
printf("\n");
}
}
return 0;
}