#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
//英语 看博友分析 抄博友程序 模拟 用vector POJ 超时
int fun(char s)
{
if(s=='S')
{
return 0;
}else if(s=='W')
{
return 1;
}else if(s=='N')
{
return 2;
}else if(s=='E')
{
return 3;
}
}
char pai[200];
int hua(char c)
{
if(c=='C')
{
return 1;
}else if(c=='D')
{
return 2;
}else if(c=='S')
{
return 3;
}else if(c=='H')
{
return 4;
}
}
int dian(char c)
{
if(c=='T')
{
return 10;
}else if(c=='J')
{
return 11;
}else if(c=='Q')
{
return 12;
}else if(c=='K')
{
return 13;
}else if(c=='A')
{
return 14;
}else
{
return c-'0';
}
}
struct nod{
char h;
char d;
}da[4][13];
//vector<nod> da[4];
bool cmp(nod a,nod b)
{
if(hua(a.h)==hua(b.h))
{
return dian(a.d)<dian(b.d);
}else
{
return hua(a.h)<hua(b.h);
}
}
int main()
{
char s;
while(cin>>s)
{
//cout<<s<<endl;
if(s=='#')
{
break;
}
//for (int i=0;i<4;i++) da[i].clear();//初始化
int fa=fun(s);
fa++;
//cout<<fa<<endl;
//scanf("%s",pai);
//scanf("%s",pai+52);
/*
for(int i=0;i<strlen(pai);i=i+2)
{
da[fa%4].push_back((nod){pai[i],pai[i+1]});
fa++;
}*/
for(int i=0;i<13;i++)
{
for(int j=0;j<4;j++)
{
cin>>da[fa%4][i].h>>da[fa%4][i].d;
fa++;
}
}
for(int i=0;i<4;i++)
{
sort(da[i],da[i]+13,cmp);
}
//cout<<da[0].size()<<endl;
/*
for(int i=0;i<4;i++)
{
for(int j=0;j<13;j++)
{
cout<<da[i][j].h<<da[i][j].d<<" ";
}
cout<<endl;
}*/
for(int i=0;i<4;i++)
{
if(i==0)
{
cout<<"South player:"<<endl;
}else if(i==1)
{
cout<<"West player:"<<endl;
}else if(i==2)
{
cout<<"North player:"<<endl;
}else if(i==3)
{
cout<<"East player:"<<endl;
}
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
for(int j=0;j<13;j++)
{
cout<<"|"<<da[i][j].d<<" "<<da[i][j].d;
if(j==12)
{
cout<<"|"<<endl;
}
}
for(int j=0;j<13;j++)
{
cout<<"| "<<da[i][j].h<<" ";
if(j==12)
{
cout<<"|"<<endl;
}
}
for(int j=0;j<13;j++)
{
cout<<"|"<<da[i][j].d<<" "<<da[i][j].d;
if(j==12)
{
cout<<"|"<<endl;
}
}
cout<<"+---+---+---+---+---+---+---+---+---+---+---+---+---+"<<endl;
}
cout<<endl;
}
return 0;
}