l=1;h=10**9 while h-l>0 m=(h+l+1)/2; puts "? "+m.to_s;STDOUT.flush if 0==gets.to_i l=m+1 else h=m end end puts "! "+l.to_s