import sys def question(num): print("? " + str(num)) sys.stdout.flush() n = int(input()) if n == 1: return True else: return False def result(num): print("! " + str(num)) sys.stdout.flush() # main max_num = 1000000000 judge = int(max_num / 2) min_num = 1 for i in range(0,30): r = question(judge) if r == True: # higer or equal min_num = judge judge = int((max_num - min_num) / 2) + min_num else: # low max_num = judge judge = int(max_num / 2) #print("max = %d" % max_num) #print("min = %d" % min_num) judge = min_num for i in range(0,70): r = question(judge) if r == True: # higer or equal min_num = judge else: # low max_num = judge #print("max = %d" % max_num) #print("min = %d" % min_num) judge += 1 if (max_num - min_num) <= 1: break result(min_num)