#define _USE_MATH_DEFINES #include #include #include #include #include #include //#include #include #include #include #include #include #include ///////// #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) #define P(p) cout<<(p)< ///////// typedef long long LL; typedef long double LD; ///////// using namespace::std; ///////// int main(void){ std::cin.tie(0); std::ios::sync_with_stdio(false); std::cout << std::fixed;// //cout << setprecision(16);// int N; cin>>N; char c1,c2; vector v; v.resize(N); int temp; rep(i,N){ cin>>c1>>c2; if(c1 == 'D'){temp = 100;} else if(c1 == 'C'){temp = 200;} else if(c1 == 'H'){temp = 300;} else if(c1 == 'S'){temp = 400;} if( '2' <= c2 && c2 <= '9'){ temp += c2 -'0'; }else if( c2 == 'A'){ temp += 1; }else if( c2 == 'T'){temp+=10;} else if( c2 == 'J'){temp+=11;} else if( c2 == 'Q'){temp+=12;} else if( c2 == 'K'){temp+=13;} v[i] = temp; } sort(v.begin(),v.end() ); vector::iterator it = v.begin(); while( it != v.end() ){ switch(*it/100){ case 1:cout<<'D';break; case 2:cout<<'C';break; case 3:cout<<'H';break; case 4:cout<<'S';break; } switch(*it%100){ case 1:cout<<'A';break; case 2:cout<<'2';break; case 3:cout<<'3';break; case 4:cout<<'4';break; case 5:cout<<'5';break; case 6:cout<<'6';break; case 7:cout<<'7';break; case 8:cout<<'8';break; case 9:cout<<'9';break; case 10:cout<<'T';break; case 11:cout<<'J';break; case 12:cout<<'Q';break; case 13:cout<<'K';break; } if((it+1) != v.end() ){ cout << " "; }else{ cout << endl; } ++it; } return 0; }