#include using namespace std; using ll = long long; const ll MOD = 998244353; int main() { ll N; cin >> N; vector ans(N, -1); vector X, Y; for (ll i = 0; i < N - 1; i++) { cout << "? " << i << " " << N - 1 << endl; ll res; cin >> res; if (res == 0) ans[i] = 0; else { X.emplace_back(i); Y.emplace_back(res); } } if ((ll)X.size() == 0) { cout << "! -1" << endl; return 0; } if ((ll)X.size() == 1) { ll a = -1, b = -1, cnt = 0; for (ll i = 1; i <= 9; i++) { for (ll j = 1; j <= 9; j++) { if (i * j == Y[0]) { a = i; b = j; cnt++; } } } if (cnt != 1) { cout << "! -1" << endl; return 0; } // よく考えたら a=b じゃん まぁいいか ans[(ll)ans.size() - 1] = a; ans[X[0]] = b; } else { cout << "? " << X[0] << " " << X[1] << endl; ll res; cin >> res; ans[(ll)ans.size() - 1] = (ll)sqrtl(Y[0] * Y[1] / res); for (ll i = 0; i < (ll)X.size(); i++) { ans[X[i]] = Y[i] / ans[(ll)ans.size() - 1]; } } cout << "! "; for (ll i = (ll)ans.size() - 1; i >= 0; i--) cout << ans[i]; cout << endl; }