using System; using static System.Console; using System.Linq; using System.Collections.Generic; using System.Globalization; using System.Runtime.CompilerServices; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[] NMi => ReadLine().Split().Select(c => int.Parse(c) - 1).ToArray(); static int[][] NMap(int n) => Enumerable.Repeat(0, n).Select(_ => NMi).ToArray(); public static void Main() { Solve(); } static void Solve() { var t = NN; var ans = new bool[t]; for (var u = 0;u < t; ++u) { var s = ReadLine().Split(); ans[u] = Game(s[1]); } WriteLine(string.Join("\n", ans.Select(f => f ? "O" : "X"))); } static bool Game(string s) { if (s.Contains("ooo") || s.Contains("oo-") || s.Contains("-oo") || s.Contains("o-o") || s.Contains("-o--") || s.Contains("--o-")) return true; var list = new List<(int id, char c)>(); for (var i = 0; i < s.Length; ++i) { if (s[i] == 'o') list.Add((i, 'o')); else if (s[i] == 'x') list.Add((i, 'x')); } for (var i = 0; i + 1 < list.Count; ++i) { if (list[i].c == 'o' && list[i + 1].c == 'o' && (list[i + 1].id - list[i].id) % 2 == 0) return true; } return false; } }