#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define _CRT_SECURE_NO_WARNINGS #define REP(i, n) for(int i=0; i<(n); i++) #define FOR(i, m, n) for(int i=(m);i<(n);i++) #define SZ(x) ((int)(x).size()) #define ALL(x) (x).begin(),(x).end() #define SORT(x) sort((x).begin(),(x).end()) #define REVE(x) reverse((x).begin(),(x).end()) #define MP make_pair #define PB push_back typedef vector VI; typedef vector VS; typedef vector> VVI; typedef pair PII; typedef long long LL; int main() { int n; cin >> n; vector> mn(n); REP(i, n)cin >> mn[i].second; REP(i, n) { char M = mn[i].second[0]; char N = mn[i].second[1]; int x,y; switch (M){ case 'D': x = 100; break; case 'C': x = 200; break; case 'H': x = 300; break; case 'S': x = 400; break; } switch (N){ case 'A': y = 1; break; case 'T': y = 10; break; case 'J': y = 11; break; case 'Q': y = 12; break; case 'K': y = 13; break; default: y = N - '0'; break; } mn[i].first += x + y; } SORT(mn); REP(i, n) { cout << mn[i].second; printf(i == n - 1 ? "\n" : " "); } }