#nullable enable #region var (_input, _iter) = (Array.Empty(), 0); T I() where T : IParsable { while (_iter >= _input.Length) (_input, _iter) = (Console.ReadLine()!.Trim().Split(' '), 0); return T.Parse(_input[_iter++], null); } #endregion const char W = 'W'; const char A = 'A'; const char X = 'X'; var ans = new List(); var t = I(); while (t-- > 0) { var r = I(); var warong = I() == "Warong"; var k = I(); var n = r.Length; var tns = r.ToCharArray(); var c1 = true; var x1 = 0; var a1 = 0; var c2 = false; var x2 = 0; var w2 = 0; for (var i = 0; i < k; i++) { var c = r[i]; if (c == W) c1 = false; if (c == X) x1++; if (c == A) a1++; } for (var i = k; i < n; i++) { var c = r[i]; if (c != A) c2 = true; if (c == X) x2++; if (c == W) w2++; } if (warong) { for (var i = 0; i < k; i++) tns[i] = A; if (w2 == 0 && x2 == 1) for (var i = k; i < n; i++) if (tns[i] == X) tns[i] = W; } else { if (!c1 && !c2) { } else if (!c1) { if (a1 == k - 1 && x1 == 1) for (var i = 0; i < k; i++) if (tns[i] == X) tns[i] = A; } else { for (var i = k; i < n; i++) if (tns[i] == X) tns[i] = A; } } ans.Add(new string(tns)); } Console.WriteLine(string.Join(Environment.NewLine, ans));