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