#include #include #include #include bool solve(const std::string s) { int slen = s.length(); int cntG = std::count_if(s.begin(), s.end(), [](char c) { return c == 'G'; }); int cntR = std::count_if(s.begin(), s.end(), [](char c) { return c == 'R'; }); int cntW = slen - (cntG + cntR); if (cntG != cntR || cntW < cntG || slen < 3 || s[0] != 'W') return false; int cnt = cntG; cntG = 0; cntR = 0; bool is_possible = true; for (const auto& c : s) { if (c == 'W') { if (cnt < 1) { is_possible = false; break; } } else if (c == 'G') { cntG++; cnt--; } else if (c == 'R') { cntR++; if (cntG < cntR) { is_possible = false; break; } } } return is_possible; } int main(int argc, char const* argv[]) { int T; std::cin >> T; std::vector s(T); for (int i = 0; i < T; i++) { std::cin >> s[i]; } for (int i = 0; i < T; i++) { std::cout << (solve(s[i]) ? "possible" : "impossible") << std::endl; } return 0; }