← Home
#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;
}