#include<cstdio>
#include<cstring>
int map[110][60];
char suit[10][20] = {"Clubs","Diamonds","Hearts","Spades"};
char value[15][10] = {"2","3","4","5","6","7","8","9","10","Jack","Queen","King","Ace"};
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
for(int i = 1; i <= n; i++)
for(int j = 1; j <= 52; j++)
scanf("%d",&map[i][j]);
getchar();
char t1[10];
int pk1[60],pk2[60];
for(int i = 1; i <=52; i++)
pk1[i] = pk2[i] = i;
while(gets(t1))
{
if(strcmp(t1,"")==0) break;
int t2;
sscanf(t1,"%d",&t2);
for(int i = 1; i <= 52; i++)
pk2[i] = pk1[map[t2][i]];
memcpy(pk1,pk2,sizeof(pk2));
}
for(int i = 1; i <= 52; i++)
{
int x = (pk1[i]-1) % 13;
int y = (pk1[i]-1) / 13;
printf("%s of %s\n",value[x],suit[y]);
}
if(t) printf("\n");
memset(map,0,sizeof(map));
}
return 0;
}
#include<cstring>
int map[110][60];
char suit[10][20] = {"Clubs","Diamonds","Hearts","Spades"};
char value[15][10] = {"2","3","4","5","6","7","8","9","10","Jack","Queen","King","Ace"};
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
for(int i = 1; i <= n; i++)
for(int j = 1; j <= 52; j++)
scanf("%d",&map[i][j]);
getchar();
char t1[10];
int pk1[60],pk2[60];
for(int i = 1; i <=52; i++)
pk1[i] = pk2[i] = i;
while(gets(t1))
{
if(strcmp(t1,"")==0) break;
int t2;
sscanf(t1,"%d",&t2);
for(int i = 1; i <= 52; i++)
pk2[i] = pk1[map[t2][i]];
memcpy(pk1,pk2,sizeof(pk2));
}
for(int i = 1; i <= 52; i++)
{
int x = (pk1[i]-1) % 13;
int y = (pk1[i]-1) / 13;
printf("%s of %s\n",value[x],suit[y]);
}
if(t) printf("\n");
memset(map,0,sizeof(map));
}
return 0;
}