#include #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() #define forn(i, n) for (int i = 0; i < (int)(n); ++i) #define for1(i, n) for (int i = 1; i <= (int)(n); ++i) #define ford(i, n) for (int i = (int)(n) - 1; i >= 0; --i) #define fore(i, a, b) for (int i = (int)(a); i <= (int)(b); ++i) template bool umin(T &a, T b) { return a > b ? (a = b, true) : false; } template bool umax(T &a, T b) { return a < b ? (a = b, true) : false; } using namespace std; long long readInt(long long l, long long r, char endd) { long long x = 0; int cnt = 0; int fi = -1; bool is_neg = false; while (true) { char g = getchar(); if (g == '-') { assert(fi == -1); is_neg = true; continue; } if ('0' <= g && g <= '9') { x *= 10; x += g - '0'; if (cnt == 0) { fi = g - '0'; } cnt++; assert(fi != 0 || cnt == 1); assert(fi != 0 || is_neg == false); assert(!(cnt > 19 || (cnt == 19 && fi > 1))); } else if (g == endd) { assert(cnt > 0); if (is_neg) { x = -x; } assert(l <= x && x <= r); return x; } else { assert(false); } } } string readString(int l, int r, char endd) { string ret = ""; int cnt = 0; while (true) { char g = getchar(); assert(g != -1); if (g == endd) { break; } cnt++; ret += g; } assert(l <= cnt && cnt <= r); return ret; } long long readIntSp(long long l, long long r) { return readInt(l, r, ' '); } long long readIntLn(long long l, long long r) { return readInt(l, r, '\n'); } string readStringLn(int l, int r) { return readString(l, r, '\n'); } string readStringSp(int l, int r) { return readString(l, r, ' '); } const int MX = 6; char* sol[6] = { "ABCCDE", "FGHIIJ", "KGHLLM", "KNNOPM", "DQQOPB", "EJRRFA", }; char signs[3] = "OX"; void Play() { printf("CHAOS\n"); fflush(stdout); int row, col, row2, col2; char c, pos; forn(i, MX*MX / 2) { row = readIntSp(1,6); col = readIntSp(1,6); string str = readStringLn(1,1); --row, --col; c = str[0]; pos = sol[row][col]; int signpos = (c == signs[0] ? 0 : 1); forn(j, MX) forn(k, MX) { if (sol[j][k] == pos && (j != row || k != col)) { row2 = j + 1; col2 = k + 1; } } if (pos == 'A' || pos == 'E') {//the same printf("%d %d %c\n", row2, col2, signs[signpos]); } else {//opposite printf("%d %d %c\n", row2, col2, signs[1 - signpos]); } fflush(stdout); } } int main(int argc, char** argv) { int T = readIntLn(1,1000); while (T--) { Play(); } return 0; }