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(); public static void Main() { Solve(); } static void Solve() { var prev = 1; var cur = 1_000_000; WriteLine($"? {prev}"); var left = prev; var right = cur; while (right > left) { WriteLine($"? {cur}"); var ans = NN; if (ans == -1) return; if (ans == 1) { if (prev < cur) { left = (prev + cur + 1) / 2; } else { right = (prev + cur) / 2; } } else { if (prev < cur) { right = (prev + cur - 1) / 2; } else { left = (prev + cur) / 2 + 1; } } prev = cur; var mid2 = left + right; var cur2 = cur * 2; cur = (cur2 + (mid2 - cur2) * 2) / 2; } WriteLine($"! {left}"); } }