#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 var t = I(); var a = t.ToCharArray(); var n = t.Length; if (a[0] == '.') a[0] = 'K'; for (var i = 1; i < n; i++) { if (a[i] != '.') continue; if (a[i - 1] == 'S') a[i] = 'G'; else a[i] = 'K'; } bool J(int start) { if (start < 0 || start + 2 >= n) return true; return a[start] != 'S' || a[start + 1] != 'K' || a[start + 2] != 'G'; } string? Solve() { for (var i = 0; i < n; i++) if (!J(i)) return null; return new(a); } var ans = Solve(); if (ans == null) Console.WriteLine("No"); else { Console.WriteLine("Yes"); Console.WriteLine(ans); }