using System; using static System.Console; using System.Linq; using System.Collections.Generic; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static long[] LList(long n) => Enumerable.Repeat(0, (int)n).Select(_ => long.Parse(ReadLine())).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var min = 0; var icnt = 1; var max = n - 1; var acnt = n - 1; var rest = 10; var i = 0; var j = 0; while (true) { var mid = (max + min) / 2; WriteLine($"? {mid + 1}"); var dcnt = NN; if (max - min == 2) { if (icnt == dcnt) { i = min; j = mid; } else { i = mid; j = max; } break; } if (mid - min == dcnt - icnt) { min = mid; icnt = dcnt; } else { max = mid; acnt = dcnt; } --rest; } while (rest > 0) { WriteLine("? 1"); ReadLine(); --rest; } WriteLine($"Yes {i + 1} {j + 1}"); } }