#include int abs(int n) { if (n < 0) return -n; else return n; } int d(int x1, int y1, int x2, int y2) { return abs(x1 - x2) + abs(y1 - y2); } int main() { int t, sx, sy, gx, gy; scanf("%d %d %d %d %d", &t, &sx, &sy, &gx, &gy); int min, mid, max; int x, y; min = 0; max = t; while (max - min > 1) { mid = (max + min) / 2; printf("? %d\n", mid); fflush(stdout); scanf("%d %d", &x, &y); if (d(sx, sy, x, y) > d(x, y, gx, gy)) max = mid; else min = mid; } printf("! %d\n", min); return 0; }