#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <set>
#include <map>
#include <cmath>
#include <queue>
#include <iomanip>
#include <bitset>
#include <unordered_map>
#include <stack>
#include <memory.h>
#include <list>
#include <numeric>
#include <functional>
#include <complex>
#include <cassert>
#include <regex>
#include <random>
#include <sstream>


#define ll long long
#define ld long double
#define ull unsigned ll
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
#define pii pair<int,int> 
#define vi vector<int>
#define vll vector<ll>
#define vpii vector<pii>
#define vvi vector<vector<int>>
#define forn(it,from,to) for(int (it)=from; (it)<to; (it)++)
#define M_PI acos(-1)
ll LINF = (ll)4e18;

using namespace std;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
#ifdef _DEBUG
	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
#else
#endif
	random_device rd;
	mt19937 rng(rd());
	uniform_int_distribution<int> uni(0, 100);

	double sp = 10.0 * 10.0 * M_PI, mp = 20.0 * 20.0 * M_PI, bp = 30.0 * 30.0 * M_PI;
	double ans = 0;
	for (int i = 0; i <= 100; i++) {
		for (int j = 0; j <= 100; j++) {
			cout << "? " << i << " " << j << endl;
			int a;
			cin >> a;
			ans += a;
		}
	}
	vector<pair<double, int>> v;
	v.push_back({ abs(ans - sp),10 });
	v.push_back({ abs(ans - mp),20 });
	v.push_back({ abs(ans - bp),30 });
	sort(all(v));
	cout << "! " << v[0].second << endl;
	return 0;
}