#include using namespace std; #define rep(i, a, b) for(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() #define pb push_back typedef long long ll; typedef pair pii; typedef vector vi; int query(int i, int j) { cout << "? " << i << " " << j << endl; int res; cin >> res; return res; } void answer(int i, int j) { cout << "! " << i << " " << j << endl; } bool go(int i, int j) { if(query(i-1, j)) { if(query(i-1, j-1)) answer(i-1, j-1); else answer(i-1, j); } else { if(query(i, j-1)) answer(i, j-1); else answer(i, j); } return true; } int main() { cin.tie(0)->sync_with_stdio(0); if(query(2, 2)) go(2, 2); else if(query(2, 4)) go(2, 4); else if(query(4, 2)) go(4, 2); else go(4, 4); }