#include using namespace std; using trump = pair< int, int >; template< typename Range > void output( Range&& rng ) { for_each( begin( rng ), end( rng ), []( auto&& t ) { cerr << t.first << " " << t.second << endl; } ); } int main() { static constexpr char illust[] = { 'D', 'C', 'H', 'S', }; static constexpr char number[] = { 'A', '2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', }; int n {}; cin >> n; vector< trump > v( n ); for( auto&& i : v ) { string s {}; cin >> s; for( int j=0 ; j<4 ; ++j ) { if( illust[j] == s[0] ) { i.first = j; break; } } for( int j=0 ; j<14 ; ++j ) { if( number[j] == s[1] ) { i.second = j; break; } } } sort( begin( v ), end( v ), []( auto&& f, auto&& s ) { return f.second < s.second; } ); sort( begin( v ), end( v ), []( auto&& f, auto&& s ) { return f.first < s.first; } ); for_each( begin( v ), end( v ), [&]( auto&& r ) { cout << illust[ r.first ] << number[ r.second ] << ( --n == 0 ? "\n" : " " ); } ); }