#include "bits/stdc++.h" #define rep(i,n) for(int i = 0;i < n;i++) #define REP(i,n,k) for(int i = n;i < k;i++) #define P(p) cout << (p) << endl; #define sP(p) cout << setprecision(15) << fixed << p << endl; #define pi 3.1415926535 #define IINF 1e9 #define LINF 1e18 #define vi vector #define mp make_pair using namespace std; typedef long long ll; typedef unsigned long long ull; int dx[] = { 0, 1, 0, -1 }; int dy[] = { -1, 0, 1, 0 }; unsigned long long sttoi(std::string str) { unsigned long long ret; std::stringstream ss; ss << str; ss >> ret; return ret; } ull gcd(ull a, ull b){ if (b > a)swap(a, b); if (b == 0) return a; return gcd(b, a%b); } void solve() { int n; cin >> n; rep(i,n){ string s; cin >> s; int green = 0; int g=0,r=0,w=0; bool f = false; bool atleast = false; int lastg; rep(j,s.length()){ if(s[j] == 'G'){ green++; g++; if(w < g){ P("impossible"); f = true; break; } atleast = true; lastg = j; }else if(s[j] == 'R'){ green--; r++; if(green < 0){ P("impossible"); f = true; break; } }else{ w++; } } if(!f) { if(green == 0) { if(!atleast){ P("impossible"); continue; } bool f2 = false; REP(j,lastg,s.length()){ if(s[j]=='W')f2 = true; } if(f2){ P("impossible"); }else{ P("possible"); } }else{ P("impossible"); } } } } int main() { solve(); return 0; }