#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; constexpr int INF = 1001001001; constexpr int mod = 1000000007; // constexpr int mod = 998244353; template inline bool chmax(T& x, T y){ if(x < y){ x = y; return true; } return false; } template inline bool chmin(T& x, T y){ if(x > y){ x = y; return true; } return false; } vector x[20001], y[20001]; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); for(int X = 0; X <= 100; ++X){ for(int Y = 0; Y <= 100; ++Y){ int d = X * X + Y * Y; x[d].emplace_back(X); y[d].emplace_back(Y); } } cout << "? " << 0 << " " << 0 << endl; int d; cin >> d; if(d == 0){ cout << "! " << 0 << " " << 0 << endl; return 0; } cout << "? " << x[d][0] << " " << y[d][0] << endl; cin >> d; if(d == 0){ cout << "! " << x[d][0] << " " << y[d][0] << endl; } else{ cout << "! " << x[d][1] << " " << y[d][1] << endl; } return 0; }