N = gets.to_i def send_query(k) STDOUT.puts("? #{k}") STDOUT.flush gets.to_i end l = 1 r = N 20.times do pp [l, r] k = (l + r + 1) / 2 s = send_query(k) if r.even? && s == r / 2 r = k break elsif s <= r / 2 l = k else r = k end end puts "! 1 #{r}"