#include <bits/stdc++.h>
using namespace std;
char get_next( char player) {
switch ( player) {
case 'N' :
return 'E' ;
case 'E' :
return 'S' ;
case 'S' :
return 'W' ;
case 'W' :
return 'N' ;
}
}
int main( ) {
char dealer;
map< string,int > card_to_index = { { "C2" ,0 } , { "C3" ,1 } , { "C4" ,2 } , { "C5" ,3 } , { "C6" ,4 } , { "C7" ,5 } , { "C8" ,6 } , { "C9" ,7 } , { "CT" ,8 } , { "CJ" ,9 } , { "CQ" ,10 } , { "CK" ,11 } , { "CA" ,12 } , { "D2" ,13 } , { "D3" ,14 } , { "D4" ,15 } , { "D5" ,16 } , { "D6" ,17 } , { "D7" ,18 } , { "D8" ,19 } , { "D9" ,20 } , { "DT" ,21 } , { "DJ" ,22 } , { "DQ" ,23 } , { "DK" ,24 } , { "DA" ,25 } , { "S2" ,26 } , { "S3" ,27 } , { "S4" ,28 } , { "S5" ,29 } , { "S6" ,30 } , { "S7" ,31 } , { "S8" ,32 } , { "S9" ,33 } , { "ST" ,34 } , { "SJ" ,35 } , { "SQ" ,36 } , { "SK" ,37 } , { "SA" ,38 } , { "H2" ,39 } , { "H3" ,40 } , { "H4" ,41 } , { "H5" ,42 } , { "H6" ,43 } , { "H7" ,44 } , { "H8" ,45 } , { "H9" ,46 } , { "HT" ,47 } , { "HJ" ,48 } , { "HQ" ,49 } , { "HK" ,50 } , { "HA" ,51 } } ;
map< int ,string> index_to_card = { { 0 , "C2" } , { 1 , "C3" } , { 2 , "C4" } , { 3 , "C5" } , { 4 , "C6" } , { 5 , "C7" } , { 6 , "C8" } , { 7 , "C9" } , { 8 , "CT" } , { 9 , "CJ" } , { 10 , "CQ" } , { 11 , "CK" } , { 12 , "CA" } , { 13 , "D2" } , { 14 , "D3" } , { 15 , "D4" } , { 16 , "D5" } , { 17 , "D6" } , { 18 , "D7" } , { 19 , "D8" } , { 20 , "D9" } , { 21 , "DT" } , { 22 , "DJ" } , { 23 , "DQ" } , { 24 , "DK" } , { 25 , "DA" } , { 26 , "S2" } , { 27 , "S3" } , { 28 , "S4" } , { 29 , "S5" } , { 30 , "S6" } , { 31 , "S7" } , { 32 , "S8" } , { 33 , "S9" } , { 34 , "ST" } , { 35 , "SJ" } , { 36 , "SQ" } , { 37 , "SK" } , { 38 , "SA" } , { 39 , "H2" } , { 40 , "H3" } , { 41 , "H4" } , { 42 , "H5" } , { 43 , "H6" } , { 44 , "H7" } , { 45 , "H8" } , { 46 , "H9" } , { 47 , "HT" } , { 48 , "HJ" } , { 49 , "HQ" } , { 50 , "HK" } , { 51 , "HA" } } ;
vector< int > N;
vector< int > E;
vector< int > S;
vector< int > W;
string line, card;
char player;
while ( cin >> dealer) {
if ( dealer == '#' ) break ;
player = dealer;
for ( int i = 0 ; i < 2 ; ++ i) {
cin >> line;
for ( int j = 0 ; j < 52 ; j+ = 2 ) {
card = line.substr ( j, 2 ) ;
player = get_next( player) ;
switch ( player) {
case 'N' :
N.push_back ( card_to_index[ card] ) ;
break ;
case 'E' :
E.push_back ( card_to_index[ card] ) ;
break ;
case 'S' :
S.push_back ( card_to_index[ card] ) ;
break ;
case 'W' :
W.push_back ( card_to_index[ card] ) ;
break ;
}
}
}
sort( N.begin ( ) , N.end ( ) ) ;
sort( E.begin ( ) , E.end ( ) ) ;
sort( S.begin ( ) , S.end ( ) ) ;
sort( W.begin ( ) , W.end ( ) ) ;
cout << "S: " ;
for ( int i = 0 ; i < S.size ( ) ; ++ i)
{
cout << index_to_card[ S[ i] ] ;
if ( i + 1 ! = S.size ( ) ) {
cout << ' ' ;
}
}
cout << endl;
cout << "W: " ;
for ( int i = 0 ; i < W.size ( ) ; ++ i)
{
cout << index_to_card[ W[ i] ] ;
if ( i + 1 ! = W.size ( ) ) {
cout << ' ' ;
}
} ;
cout << endl;
cout << "N: " ;
for ( int i = 0 ; i < N.size ( ) ; ++ i)
{
cout << index_to_card[ N[ i] ] ;
if ( i + 1 ! = N.size ( ) ) {
cout << ' ' ;
}
}
cout << endl;
cout << "E: " ;
for ( int i = 0 ; i < E.size ( ) ; ++ i)
{
cout << index_to_card[ E[ i] ] ;
if ( i + 1 ! = E.size ( ) ) {
cout << ' ' ;
}
}
cout << endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2hhciBnZXRfbmV4dChjaGFyIHBsYXllcil7CiAgc3dpdGNoKHBsYXllcil7CiAgICBjYXNlICdOJzoKICAgICAgcmV0dXJuICdFJzsKICAgIGNhc2UgJ0UnOgogICAgICByZXR1cm4gJ1MnOwogICAgY2FzZSAnUyc6CiAgICAgIHJldHVybiAnVyc7CiAgICBjYXNlICdXJzoKICAgICAgcmV0dXJuICdOJzsKICB9Cn0KCmludCBtYWluKCl7CiAgY2hhciBkZWFsZXI7CiAgbWFwPHN0cmluZyxpbnQ+IGNhcmRfdG9faW5kZXggPSB7eyAiQzIiICwwIH0sIHsgIkMzIiAsMSB9LCB7ICJDNCIgLDIgfSwgeyAiQzUiICwzIH0sIHsgIkM2IiAsNCB9LCB7ICJDNyIgLDUgfSwgeyAiQzgiICw2IH0sIHsgIkM5IiAsNyB9LCB7ICJDVCIgLDggfSwgeyAiQ0oiICw5IH0sIHsgIkNRIiAsMTAgfSwgeyAiQ0siICwxMSB9LCB7ICJDQSIgLDEyIH0sIHsgIkQyIiAsMTMgfSwgeyAiRDMiICwxNCB9LCB7ICJENCIgLDE1IH0sIHsgIkQ1IiAsMTYgfSwgeyAiRDYiICwxNyB9LCB7ICJENyIgLDE4IH0sIHsgIkQ4IiAsMTkgfSwgeyAiRDkiICwyMCB9LCB7ICJEVCIgLDIxIH0sIHsgIkRKIiAsMjIgfSwgeyAiRFEiICwyMyB9LCB7ICJESyIgLDI0IH0sIHsgIkRBIiAsMjUgfSwgeyAiUzIiICwyNiB9LCB7ICJTMyIgLDI3IH0sIHsgIlM0IiAsMjggfSwgeyAiUzUiICwyOSB9LCB7ICJTNiIgLDMwIH0sIHsgIlM3IiAsMzEgfSwgeyAiUzgiICwzMiB9LCB7ICJTOSIgLDMzIH0sIHsgIlNUIiAsMzQgfSwgeyAiU0oiICwzNSB9LCB7ICJTUSIgLDM2IH0sIHsgIlNLIiAsMzcgfSwgeyAiU0EiICwzOCB9LCB7ICJIMiIgLDM5IH0sIHsgIkgzIiAsNDAgfSwgeyAiSDQiICw0MSB9LCB7ICJINSIgLDQyIH0sIHsgIkg2IiAsNDMgfSwgeyAiSDciICw0NCB9LCB7ICJIOCIgLDQ1IH0sIHsgIkg5IiAsNDYgfSwgeyAiSFQiICw0NyB9LCB7ICJISiIgLDQ4IH0sIHsgIkhRIiAsNDkgfSwgeyAiSEsiICw1MCB9LCB7ICJIQSIgLDUxIH19OwogIG1hcDxpbnQsc3RyaW5nPiBpbmRleF90b19jYXJkID0ge3sgMCwgIkMyIiB9LCB7IDEsICJDMyIgfSwgeyAyLCAiQzQiIH0sIHsgMywgIkM1IiB9LCB7IDQsICJDNiIgfSwgeyA1LCAiQzciIH0sIHsgNiwgIkM4IiB9LCB7IDcsICJDOSIgfSwgeyA4LCAiQ1QiIH0sIHsgOSwgIkNKIiB9LCB7IDEwLCAiQ1EiIH0sIHsgMTEsICJDSyIgfSwgeyAxMiwgIkNBIiB9LCB7IDEzLCAiRDIiIH0sIHsgMTQsICJEMyIgfSwgeyAxNSwgIkQ0IiB9LCB7IDE2LCAiRDUiIH0sIHsgMTcsICJENiIgfSwgeyAxOCwgIkQ3IiB9LCB7IDE5LCAiRDgiIH0sIHsgMjAsICJEOSIgfSwgeyAyMSwgIkRUIiB9LCB7IDIyLCAiREoiIH0sIHsgMjMsICJEUSIgfSwgeyAyNCwgIkRLIiB9LCB7IDI1LCAiREEiIH0sIHsgMjYsICJTMiIgfSwgeyAyNywgIlMzIiB9LCB7IDI4LCAiUzQiIH0sIHsgMjksICJTNSIgfSwgeyAzMCwgIlM2IiB9LCB7IDMxLCAiUzciIH0sIHsgMzIsICJTOCIgfSwgeyAzMywgIlM5IiB9LCB7IDM0LCAiU1QiIH0sIHsgMzUsICJTSiIgfSwgeyAzNiwgIlNRIiB9LCB7IDM3LCAiU0siIH0sIHsgMzgsICJTQSIgfSwgeyAzOSwgIkgyIiB9LCB7IDQwLCAiSDMiIH0sIHsgNDEsICJINCIgfSwgeyA0MiwgIkg1IiB9LCB7IDQzLCAiSDYiIH0sIHsgNDQsICJINyIgfSwgeyA0NSwgIkg4IiB9LCB7IDQ2LCAiSDkiIH0sIHsgNDcsICJIVCIgfSwgeyA0OCwgIkhKIiB9LCB7IDQ5LCAiSFEiIH0sIHsgNTAsICJISyIgfSwgeyA1MSwgIkhBIiB9fTsKICB2ZWN0b3I8aW50PiBOOwogIHZlY3RvcjxpbnQ+IEU7CiAgdmVjdG9yPGludD4gUzsKICB2ZWN0b3I8aW50PiBXOwogIHN0cmluZyBsaW5lLCBjYXJkOwogIGNoYXIgcGxheWVyOwogIHdoaWxlKGNpbiA+PiBkZWFsZXIpewogICAgaWYoZGVhbGVyID09ICcjJykgYnJlYWs7CiAgICBwbGF5ZXIgPSBkZWFsZXI7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7ICsraSl7CiAgICAgIGNpbiA+PiBsaW5lOwogICAgICBmb3IoaW50IGogPSAwOyBqIDwgNTI7IGorPTIpeyAKICAgICAgICBjYXJkID0gbGluZS5zdWJzdHIoaiwgMik7CiAgICAgICAgcGxheWVyID0gZ2V0X25leHQocGxheWVyKTsKICAgICAgICBzd2l0Y2gocGxheWVyKXsKICAgICAgICAgIGNhc2UgJ04nOgogICAgICAgICAgICBOLnB1c2hfYmFjayggY2FyZF90b19pbmRleFtjYXJkXSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnRSc6CiAgICAgICAgICAgIEUucHVzaF9iYWNrKCBjYXJkX3RvX2luZGV4W2NhcmRdKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdTJzoKICAgICAgICAgICAgUy5wdXNoX2JhY2soIGNhcmRfdG9faW5kZXhbY2FyZF0pOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgJ1cnOgogICAgICAgICAgICBXLnB1c2hfYmFjayggY2FyZF90b19pbmRleFtjYXJkXSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgIH0KICAgIH0KCiAgICBzb3J0KE4uYmVnaW4oKSwgTi5lbmQoKSk7CiAgICBzb3J0KEUuYmVnaW4oKSwgRS5lbmQoKSk7CiAgICBzb3J0KFMuYmVnaW4oKSwgUy5lbmQoKSk7CiAgICBzb3J0KFcuYmVnaW4oKSwgVy5lbmQoKSk7CgogICAgY291dCAgPDwgIlM6ICI7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IFMuc2l6ZSgpOyArK2kpCiAgICB7CiAgICAgIGNvdXQgPDwgaW5kZXhfdG9fY2FyZFtTW2ldXTsKICAgICAgaWYoIGkgKyAxICE9IFMuc2l6ZSgpKXsKICAgICAgICBjb3V0IDw8ICcgJzsKICAgICAgfQogICAgfQogICAgY291dCA8PCBlbmRsOwogICAgY291dCAgPDwgIlc6ICI7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IFcuc2l6ZSgpOyArK2kpCiAgICAgIHsKICAgICAgICBjb3V0IDw8IGluZGV4X3RvX2NhcmRbV1tpXV07CiAgICAgICAgaWYoIGkgKyAxICE9IFcuc2l6ZSgpKXsKICAgICAgICAgIGNvdXQgPDwgJyAnOwogICAgICAgIH0KICAgICAgfTsKICAgIGNvdXQgPDwgZW5kbDsKICAgIGNvdXQgIDw8ICJOOiAiOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOLnNpemUoKTsgKytpKQogICAgewogICAgICBjb3V0IDw8IGluZGV4X3RvX2NhcmRbTltpXV07CiAgICAgIGlmKCBpICsgMSAhPSBOLnNpemUoKSl7CiAgICAgICAgY291dCA8PCAnICc7CiAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKICAgIGNvdXQgIDw8ICJFOiAiOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBFLnNpemUoKTsgKytpKQogICAgewogICAgICBjb3V0IDw8IGluZGV4X3RvX2NhcmRbRVtpXV07CiAgICAgIGlmKCBpICsgMSAhPSBFLnNpemUoKSl7CiAgICAgICAgY291dCA8PCAnICc7CiAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKICB9IAp9Cg==