using System; using System.Collections.Generic; class A { static int Query(int i, int j) { Console.WriteLine($"? {i} {j}"); return int.Parse(Console.ReadLine()); } static void Main() => Console.WriteLine($"! {Solve()}"); static object Solve() { var d1 = Query(0, 0); if (d1 == 0) return $"{0} {0}"; var options = new List<(int i, int j)>(); for (int i = 0; i <= 100; i++) { for (int j = 0; j <= 100; j++) { if (i * i + j * j == d1) options.Add((i, j)); } } var (x1, y1) = options[0]; if (options.Count == 1) return $"{x1} {y1}"; var d2 = Query(x1, y1); if (d2 == 0) return $"{x1} {y1}"; foreach (var (x2, y2) in options) { var (i, j) = (x1 - x2, y1 - y2); if (i * i + j * j == d2) return $"{x2} {y2}"; } throw new InvalidOperationException(); } }