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 = int(math.fabs(max_num - 1)) min_num = int(math.fabs(min_num - 1)) 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