import sys import math def question(num): print("? %d" % num) sys.stdout.flush() n = int(input()) return n def result(num): print("! %d" % num) sys.stdout.flush() # main max_num = 1e9 judge = int(max_num / 2) min_num = 10 for i in range(0,29): r = question(judge) if r == 1: # higer min_num = judge elif r == -1: # low max_num = judge else: result(judge + i) sys.exit() max_num -= 1 min_num -= 1 max_num = max_num if max_num >= 0 else 0 min_num = min_num if min_num >= 0 else 0 judge = int((max_num - min_num) / 2) + min_num judge = min_num for i in range(29,100): r = question(judge) if r == 0: result(judge + i) break