#include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = unsigned; using u64 = unsigned long long; using namespace std; template constexpr T INF = ::numeric_limits::max() / 32 * 15 + 208; int main() { auto ask = [&](int a, int b){ cout << "? " << a << " " << b << endl; int res; cin >> res; return res; }; int a = ask(0, 0), b = ask(0, 100); for (int i = 0; i <= 100; ++i) { for (int j = 0; j <= 100; ++j) { if(i*i+j*j == a && i*i+(100-j)*(100-j) == b){ cout << "! " << i << " " << j << endl; return 0; } } } return 0; }