#include int main() { int N; scanf("%d", &N); int x, y; printf("? 1\n"); fflush(stdout); scanf("%d", &x); printf("? %d\n", N - 1); fflush(stdout); scanf("%d", &y); if ((x == 1 && y == N / 2) || (x == 0 && y == N / 2 - 1)) { printf("! 2 %d\n", N - 1); fflush(stdout); return 0; } int l = 1, r = N - 1, m, z; while (l < r) { m = (l + r) / 2; printf("? %d\n", m); fflush(stdout); scanf("%d", &z); if (z * 2 == m) { l = m; break; } else if ((x == 1 && z * 2 > m) || (x == 0 && z * 2 < m)) l = m + 1; else r = m - 1; } if (l >= N / 2) printf("! 1 %d\n", l); else printf("! %d %d\n", l + 1, N); fflush(stdout); return 0; }