// random queries #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int p; cin >> p; vector> queries = {{1, 1}, {p, p}, {1, p}}; for (int q = 0; q < (int)queries.size() && q < p; q++) { cout << "? " << queries[q].first << ' ' << queries[q].second << '\n' << flush; int response; cin >> response; if (response == -1) { return 0; } } cout << "!" << '\n'; for (int i = 0; i < p; i++) { for (int j = 0; j < p; j++) { if (j > 0) { cout << ' '; } cout << 1 + (i * p + j + 1) % (p * p); } cout << '\n'; } cout << flush; return 0; }