#include #define rep(i, a) rep2 (i, 0, a) #define rep2(i, a, b) for (int i = (a); i < (b); i++) #define repr(i, a) repr2 (i, 0, a) #define repr2(i, a, b) for (int i = (b) - 1; i >= (a); i--) #define asn(a, b, c) fill_n(&(b), sizeof(a) / sizeof(b), c) using namespace std; typedef long long ll; const ll inf = 1e9; const ll mod = 1e9 + 7; int main() { int N; cin >> N; vector> v; map t; t['D'] = 0; t['C'] = 1; t['H'] = 2; t['S'] = 3; rep (i, N) { string m; cin >> m; int a = t[m[0]]; int b; if (m[1] == 'A') { b = 1; } else if (m[1] == 'T') { b = 10; } else if (m[1] == 'J') { b = 11; } else if (m[1] == 'Q') { b = 12; } else if (m[1] == 'K') { b = 13; } else { b = m[1] - '0'; } v.emplace_back(a, b); } sort(v.begin(), v.end()); rep (i, N) { string s; if (v[i].first == 0) { s += 'D'; } else if (v[i].first == 1) { s += 'C'; } else if (v[i].first == 2) { s += 'H'; } else if (v[i].first == 3) { s += 'S'; } if (v[i].second == 1) { s += 'A'; } else if (v[i].second == 10) { s += 'T'; } else if (v[i].second == 11) { s += 'J'; } else if (v[i].second == 12) { s += 'Q'; } else if (v[i].second == 13) { s += 'K'; } else { s += v[i].second + '0'; } if (i) cout << " "; cout << s; } cout << endl; return 0; }