#include using namespace std; #define rep(i,n) for(int i=0;i<(n);++i) #define loop for(;;) #define trace(var) cerr<<">>> "<<#var<<" = "< inline ostream& operator<<(ostream&os, pair p) { return os << '(' << p.first << ", " << p.second << ')'; } template inline ostream& operator<<(ostream&os, tuple t) { return os << '(' << get<0>(t) << ", " << get<1>(t) << ", " << get<2>(t) << ')'; } template inline ostream& operator<<(ostream&os, set v) { os << "(set"; for (T item: v) os << ' ' << item; os << ")"; return os; } template inline ostream& operator<<(ostream&os, vector v) { if (v.size() == 0) { return os << "(empty)"; } os << v[0]; for (int i=1, len=v.size(); i inline istream& operator>>(istream&is, vector&v) { rep (i, v.size()) is >> v[i]; return is; } enum Suit { D, C, H, S }; struct Card { Suit s; int n; Card() {}; Card(Suit _s, int _n) : s(_s), n(_n) {}; }; ostream& operator<<(ostream&os, Suit&s) { if (s == D) os << 'D'; else if (s == H) os << 'H'; else if (s == C) os << 'C'; else if (s == S) os << 'S'; else cerr << "Suit show Error" << endl; return os; } ostream& operator<<(ostream&os, Card&c) { os << c.s; if (c.n == 1) os << 'A'; else if (c.n == 10) os << 'T'; else if (c.n == 11) os << 'J'; else if (c.n == 12) os << 'Q'; else if (c.n == 13) os << 'K'; else os << c.n; return os; } istream& operator>>(istream&is, Suit&s) { char c; is >> c; if (c == 'D') s = D; else if (c == 'H') s = H; else if (c == 'C') s = C; else if (c == 'S') s = S; else cerr << "Suit read Error" << endl; return is; } istream& operator>>(istream&is, Card&c) { Suit s; is >> s; char n; is >> n; c.s = s; if (n == 'A') c.n = 1; else if (n == 'T') c.n = 10; else if (n == 'J') c.n = 11; else if (n == 'Q') c.n = 12; else if (n == 'K') c.n = 13; else c.n = n - '0'; return is; } bool operator<(const Card& lh, const Card& rh) { if (lh.s != rh.s) return lh.s < rh.s; return lh.n < rh.n; } // ^ > v < int dx[] = { -1, 0, 1, 0 }; int dy[] = { 0, 1, 0, -1 }; using vi = vector; using vvi = vector; using vd = vector; using vvd = vector; using vb = vector; int main() { cin.tie(0); ios::sync_with_stdio(0); cout.setf(ios::fixed); cout.precision(10); random_device dev; mt19937 rand(dev()); int n; cin >> n; vector cs(n); cin >> cs; sort(begin(cs), end(cs)); cout << cs << endl; return 0; }