#include using namespace std; int main() { int pre_d = numeric_limits::max(); int x = 0, y = 0, z = 0; int l = -150, r = 151; while (1 < r - l) { int mid = (l + r) / 2; cout << "? " << mid << ' ' << y << ' ' << z << endl; int d; cin >> d; (d <= pre_d ? l : r) = mid; pre_d = d; } x = l; l = -150, r = 151; while (1 < r - l) { int mid = (l + r) / 2; cout << "? " << x << ' ' << mid << ' ' << z << endl; int d; cin >> d; (d <= pre_d ? l : r) = mid; pre_d = d; } y = l; l = -150, r = 151; while (1 < r - l) { int mid = (l + r) / 2; cout << "? " << x << ' ' << y << ' ' << mid << endl; int d; cin >> d; (d <= pre_d ? l : r) = mid; pre_d = d; } z = l; cout << "! " << x << ' ' << y << ' ' << z << endl; return 0; }