#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // C++ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include //#include #define rep(i,j,k) for(int i=(int)j;i<(int)k;i++) #define ll long long #define Sort(v) sort(all(v)) #define INF 1e9 #define LINF 1e18 #define END return 0 #define pb push_back #define se second #define fi first #define pb push_back #define all(v) (v).begin() , (v).end() #define MP make_pair #define MOD 1000000007LL #define int long long using namespace std; int day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int dx[]={0,1,0,-1}; int dy[]={1,0,-1,0}; struct edge{int to,cost;}; typedef pair P; bool isupper(char c){if('A'<=c&&c<='Z')return 1;return 0;} bool islower(char c){if('a'<=c&&c<='z')return 1;return 0;} bool isPrime(int x){if(x==1)return 0;if(x==2)return 1;if(x%2==0)return 0;for(int i=3;i*i<=x;i++)if(x%i==0)return 0;return 1;} bool iskaibun(string s){for(int i=0;i v){rep(i,0,v.size()){if(i)cout<<" ";cout< v){rep(i,0,v.size()){cout< mp; mp['D']=0; mp['C']=1; mp['H']=2; mp['S']=3; int pa=mp[a.c]; int pb=mp[b.c]; if(a.c==b.c)return a.x mp; mp['A']=1; mp['T']=10; mp['J']=11; mp['Q']=12; mp['K']=13; vector v; int n; cin>>n; rep(i,0,n){ char c;char x; cin>>c>>x; if(isnumber(x))v.push_back(S{c,x-'0'}); else v.push_back(S{c,mp[x]}); } sort(all(v),cmp); map mpp; mpp[1]='A'; mpp[10]='T'; mpp[11]='J'; mpp[12]='Q'; mpp[13]='K'; rep(i,0,n){ if(i)cout<<" "; if(v[i].x==1 or v[i].x>=10)cout<