#include #include #include #include #include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < n; ++i) int sqrt(ll x) { for (int i = 1; i < 10; i++) if (x == i * i) return i; } int main() { ll n; cin >> n; vector res(n); vector non_zero; rep(i, n - 1) { cout << "? " << i << " " << n - 1 << endl; cin >> res[i]; if (res[i] != 0) non_zero.emplace_back(i); } if (non_zero.size() == 0) { cout << "! -1" << endl; return 0; } if (non_zero.size() == 1) { ll ret = res[non_zero[0]]; if (ret == 1 || ret == 25 || ret == 49 || ret == 64 || ret == 81) { res[n-1] = ret; } else { cout << "! -1" << endl; return 0; } } else { cout << "? " << non_zero[0] << " " << non_zero[1] << endl; ll res01; cin >> res01; res[n - 1] = res[non_zero[0]] * res[non_zero[1]] / res01; } ll a_back = sqrt(res[n - 1]); cout << "! "; rep(i, n) { ll num = res[n - 1 - i] / a_back; cout << res[n - 1 - i] / a_back; } cout << endl; }