#include using namespace std; int main(){ cout << "? 0 0" << endl; int d; cin >> d; vector>v; for(int i=0;i<=100;i++)for(int j=0;j<=100;j++)if(i*i+j*j==d)v.push_back({i,j}); for(int i=0;i<=100;i++)for(int j=0;j<=100;j++){ map>mp; for(auto[a,b]:v)mp[(a-i)*(a-i)+(b-j)*(b-j)]={a,b}; if(mp.size()==v.size()){ cout << "? " << i << " " << j << endl; int d2; cin >> d2; cout << "! " << mp[d2].first << " " << mp[d2].second << endl; return 0; } } assert(false); }