#include <iostream>
#include <cstdlib> // for exit
using namespace std;
int n;
void answer(int a) {
cout << "! " << a << endl;
}
int query(int a, int b) {
cout << "? " << a << " " << b << endl;
int r;
cin >> r;
if (r == -1) exit(0);
return r;
}
void main_() {
cin >> n;
if (n == -1) exit(0);
if (n == 3) {
int q12 = query(1, 2);
int q21 = query(2, 1);
if (q12 != q21) {
int q13 = query(1, 3);
int q31 = query(3, 1);
if (q13 != q31) answer(1);
else answer(2);
} else {
answer(3);
}
return;
}
for (int i = 1; i + 1 <= n; i += 2) {
if (n % 2 == 1 && i == n - 4) break;
if ((n % 2 == 0 && i + 1 == n) || query(i, i + 1) != query(i + 1, i)) {
int k = 1;
while (k == i || k == i + 1) k++;
if (query(i, k) != query(k, i)) answer(i);
else answer(i + 1);
return;
}
}
int a = n - 4, b = n - 3, c = n - 2;
int v0 = query(a, b);
int v1 = query(b, c);
int v2 = query(c, a);
if ((v0 + v1 + v2) % 2 == 0) {
if (query(b, a) != v0) {
if (query(c, b) != v1) answer(b);
else answer(a);
} else {
answer(c);
}
} else {
if (query(n, 1) != query(1, n)) answer(n);
else answer(n - 1);
}
}
int main() {
int t;
cin >> t;
while (t--) main_();
return 0;
}