using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace shibasu { class Program { private static int IsShibusPossible(string arg) { string local_arg = arg; int W_pos = local_arg.IndexOf("W"); int G_pos = local_arg.IndexOf("G"); int R_pos = local_arg.IndexOf("R"); if (G_pos == -1 && R_pos == -1) { return 1; } if (W_pos == -1 || G_pos == -1 || R_pos == -1) { return -1; } if(W_pos > G_pos || W_pos > R_pos) { return -1; } if (G_pos > R_pos) { return -1; } local_arg = local_arg.Remove(local_arg.IndexOf("W"), 1); local_arg = local_arg.Remove(local_arg.IndexOf("G"), 1); local_arg = local_arg.Remove(local_arg.IndexOf("R"), 1); return IsShibusPossible(local_arg); } static void Main(string[] args) { string s = Console.ReadLine(); int num = int.Parse(s); for(int i = 0; i < num; i++) { string one_data = Console.ReadLine(); // ひとつもGRが無い int G_pos = one_data.IndexOf("G"); int R_pos = one_data.IndexOf("R"); if (G_pos == -1 || R_pos == -1) { Console.WriteLine("impossible"); continue; } // Wの後にGRが無い int W_pos = one_data.LastIndexOf("W"); string w_data = one_data.Substring(W_pos); G_pos = w_data.IndexOf("G"); R_pos = w_data.IndexOf("R"); if (G_pos == -1 || R_pos == -1) { Console.WriteLine("impossible"); continue; } if (IsShibusPossible(Console.ReadLine()) == 1) { Console.WriteLine("possible"); } else { Console.WriteLine("impossible"); } } } } }