#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
#define print(a) for(auto x : a) cout << x << " "; cout << endl
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
inline int power(int a, int b, int mod=M) {
int x = 1;
a %= mod;
while (b) {
if (b & 1) x = (x * a) % mod;
a = (a * a) % mod;
b >>= 1;
}
return x;
}
//_ ***************************** START Below *******************************
//* Change this to false => before submitting to cf
// bool testing = true;
bool testing = false;
int missing;
void hack(){
cin >> missing;
if(missing < 2 || missing > 999){
cout << "Invalid missing" << endl;
}
}
int interactor(int x, int y){
if(x>=missing) x++;
if(y>=missing) y++;
return x*y;
}
int askQuery(int x, int y){
cout << "? " << x << " " << y << endl;
if(testing){
cout << interactor(x, y) << endl;
return interactor(x,y);
}
int area;
cin >> area;
return area;
}
int consistency(){
if(testing){
hack();
}
int s = 2, e = 999;
while(s<e){
int m1 = s + (e-s)/3;
int m2 = e - (e-s)/3;
int res = askQuery(m1, m2);
if(res == m1*m2){
s = m2+1;
}
else if(res == m1*(m2+1)){
s = m1+1;
e = m2;
}
else{
e = m1;
}
}
return s;
}
void solve() {
int ans = consistency();
cout << "! " << ans << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
cin >> t;
while(t--){
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQojZGVmaW5lIHByaW50KGEpICAgICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeCA8PCAiICI7IGNvdXQgPDwgZW5kbAoKCmNvbnN0IGludCBNID0gMTAwMDAwMDAwNzsKY29uc3QgaW50IE4gPSAzZTUrOTsKY29uc3QgaW50IElORiA9IDJlOSsxOwpjb25zdCBpbnQgTElORiA9IDIwMDAwMDAwMDAwMDAwMDAwMDE7CgppbmxpbmUgaW50IHBvd2VyKGludCBhLCBpbnQgYiwgaW50IG1vZD1NKSB7CiAgICBpbnQgeCA9IDE7CiAgICBhICU9IG1vZDsKICAgIHdoaWxlIChiKSB7CiAgICAgICAgaWYgKGIgJiAxKSB4ID0gKHggKiBhKSAlIG1vZDsgCiAgICAgICAgYSA9IChhICogYSkgJSBtb2Q7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiB4Owp9CgoKLy9fICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFNUQVJUIEJlbG93ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCi8vKiBDaGFuZ2UgdGhpcyB0byBmYWxzZSA9PiBiZWZvcmUgc3VibWl0dGluZyB0byBjZgovLyBib29sIHRlc3RpbmcgPSB0cnVlOyAKYm9vbCB0ZXN0aW5nID0gZmFsc2U7CgoKaW50IG1pc3Npbmc7Cgp2b2lkIGhhY2soKXsKICAgIGNpbiA+PiBtaXNzaW5nOwogICAgaWYobWlzc2luZyA8IDIgfHwgbWlzc2luZyA+IDk5OSl7CiAgICAgICAgY291dCA8PCAiSW52YWxpZCBtaXNzaW5nIiA8PCBlbmRsOwogICAgfQp9CgppbnQgIGludGVyYWN0b3IoaW50IHgsIGludCB5KXsKICAgIGlmKHg+PW1pc3NpbmcpIHgrKzsKICAgIGlmKHk+PW1pc3NpbmcpIHkrKzsKICAgIHJldHVybiB4Knk7Cn0KCgoKaW50IGFza1F1ZXJ5KGludCB4LCBpbnQgeSl7CiAgICBjb3V0IDw8ICI/ICIgPDwgeCA8PCAiICIgPDwgeSA8PCBlbmRsOwoKICAgIGlmKHRlc3RpbmcpewogICAgICAgIGNvdXQgPDwgaW50ZXJhY3Rvcih4LCB5KSA8PCBlbmRsOwogICAgICAgIHJldHVybiBpbnRlcmFjdG9yKHgseSk7CiAgICB9CiAgICBpbnQgYXJlYTsKICAgIGNpbiA+PiBhcmVhOwogICAgcmV0dXJuIGFyZWE7Cn0KCgppbnQgY29uc2lzdGVuY3koKXsKCiAgICBpZih0ZXN0aW5nKXsKICAgICAgICBoYWNrKCk7CiAgICB9CgoKICAgIGludCBzID0gMiwgZSA9IDk5OTsKICAgIHdoaWxlKHM8ZSl7CiAgICAgICAgaW50IG0xID0gcyArIChlLXMpLzM7CiAgICAgICAgaW50IG0yID0gZSAtIChlLXMpLzM7CgogICAgICAgIGludCByZXMgPSBhc2tRdWVyeShtMSwgbTIpOwoKICAgICAgICBpZihyZXMgPT0gbTEqbTIpewogICAgICAgICAgICBzID0gbTIrMTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZihyZXMgPT0gbTEqKG0yKzEpKXsKICAgICAgICAgICAgcyA9IG0xKzE7CiAgICAgICAgICAgIGUgPSBtMjsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgZSA9IG0xOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gczsKfQoKCgoKCgoKCnZvaWQgc29sdmUoKSB7CgogICAgaW50IGFucyA9IGNvbnNpc3RlbmN5KCk7CiAgICBjb3V0IDw8ICIhICIgPDwgYW5zIDw8IGVuZGw7Cgp9CgoKCgoKaW50MzJfdCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgogICAgaW50IHQgPSAxOwogICAgY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pewogICAgICAgIHNvbHZlKCk7CiAgICB9CgoKICAgIHJldHVybiAwOwp9