using System; namespace bus { class Program { static void Main(string[] args) { // テストケースの数 整数 "T" int Num_T = int.Parse(Console.ReadLine()); // テストケース文字列を1文字ずつ判定 for (int i = 0; i < Num_T; i++) { // テストケース文字列 "S" string str_S = Console.ReadLine(); Console.WriteLine(judgingLight(str_S)); } } static string judgingLight(string str) { int wht = 0; // 白色カウント int grn = 0; // 緑色カウント int red = 0; // 赤色カウント char pre = ' '; // 直前の色を記憶 // 一文字ずつ検索する for (int i = 0; i < str.Length; i++) { if (str[i] == 'W') { wht++; } if (str[i] == 'G') { grn++; } if (str[i] == 'R') { red++; } else { pre = str[i]; } // "白 < 緑"もしくは"緑 < 赤" になるタイミングは絶対に存在しない if (wht < grn || grn < red) { return "impossible"; } } // 最後の直前が "G(緑)" かつ "緑と赤の数が同じ"ときのみ存在する if (pre == 'G' && grn == red) { return "possible"; } else { return "impossible"; } } } }