import java.util.*; import java.io.*; import java.awt.geom.*; import java.math.*; public class No0246 { static final Scanner in = new Scanner(System.in); static final PrintWriter out = new PrintWriter(System.out,false); static void solve() { int l = 1, r = 1_000_000_000; for (int i=0; i<100; i++) { int m = (l + r)/2; out.println("? "+m); out.flush(); int x = in.nextInt(); if (x == 1) { l = m; } else { r = m; } } out.println("! "+l); } public static void main(String[] args) { long start = System.currentTimeMillis(); solve(); out.flush(); long end = System.currentTimeMillis(); //trace(end-start + "ms"); in.close(); out.close(); } static void trace(Object... o) { System.out.println(Arrays.deepToString(o));} }