import java.io.*; import java.util.*; class Main { public static void out (Object o) { System.out.println(o); } public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int min = 1 , max = 1000000000; while (true) { int mid = max - min != 1 ? (max + min) / 2 : max; if (min == mid && mid == max) { out("! " + mid); break; } else { out("? " + mid); //out(min+"~"+max); } System.out.flush(); int n = Integer.parseInt(br.readLine()); if (n == 0) { max = mid - 1; } else { min = mid; } } } }