#include<bits/stdc++.h> using namespace std; typedef long long ll; #define pii pair<int, int> #define pll pair<ll, ll> #define mp make_pair #define faster_cin_cout ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(0) template <typename T> inline void read(T &x) {char ch=getchar(); int f=1; x=0; while(!isdigit(ch)){if(ch=='-')f *= -1; ch=getchar();} while(isdigit(ch)) {x = (x<<1) + (x<<3) + (ch^48); ch=getchar();} x*=f;} ll qpow(ll x, ll y) { ll a=1, b=x; while(y){if(y&0x1) a*=b; b*=b; y>>=1;} return a;} // 3 4 5 6 7 8 9 10 J Q K A 2 joker JOKER void print(const vector<string>& p) { for(int i = 0; i < p.size(); i++) { if(i < p.size()-1) cout << p[i] << " "; else cout << p[i] << endl; } } bool cal12345(vector<string>& p1, vector<string>& p2, map<string, int>& t) { if(t[p1[0]] < t[p2[0]]) print(p2); else print(p1); return true; } bool cal2(vector<string>& p1, vector<string>& p2, map<string, int>& t) { if(p1.size() == 2 && p1[0] == "joker" && p1[1] == "JOKER") { print(p1); return true; } if(p2.size() == 2 && p2[0] == "joker" && p2[1] == "JOKER") { print(p2); return true; } return false; } bool cal4(vector<string>& p1, vector<string>& p2, map<string, int>& t) { if(p1.size() == 4 && p2.size() == 4) { if(t[p1[0]] < t[p2[0]]) {print(p2); return true;} else {print(p1); return true;} } if(p1.size() == 4) {print(p1); return true;} if(p2.size() == 4) {print(p2); return true;} return false; } bool cal(vector<string>& p1, vector<string>& p2, map<string, int>& t) { int n1 = p1.size(), n2 = p2.size(); if(n1 > 5 || n2 > 5 || n1 < 1 || n2 < 1) return false; // 判断双方牌数量相同的情况 if(n1 == n2) return cal12345(p1, p2, t); // 判断存在 joker 和 JOKER 的情况 if(n1 == 2 || n2 == 2) { if(cal2(p1, p2, t)) return true; } // 没有通过上一个case说明没有双王 // 判断存在炸弹的情况 if(n1 == 4 || n2 == 4) return cal4(p1, p2, t); // 其余情况直接返回false return false; } int main(void) { #ifndef ONLINE_JUDGE ifstream cin("in.txt"); #endif map<string, int> t; t["3"] = 3; t["4"] = 4; t["5"] = 5; t["6"] = 6; t["7"] = 7; t["8"] = 8; t["9"] = 9; t["10"]= 10; t["J"] = 11; t["Q"] = 12; t["K"] = 13; t["A"] = 14; t["2"] = 20; t["joker"] = 100; t["JOKER"] = 101; string str, player1, player2; while(getline(cin, str)) { stringstream ss(str); vector<string> p1, p2; getline(ss, player1, '-'); getline(ss, player2); stringstream ss1(player1); while(getline(ss1, str, ' ')) p1.push_back(str); stringstream ss2(player2); while(getline(ss2, str, ' ')) p2.push_back(str); if(!cal(p1, p2, t)) cout << "ERROR" << endl; } return 0; }