#include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); int n; cin >> n; vector r(n, -1); vector c(n, -1); rep(i, n - 1) { cout << "? "; cout << i + 1 << " " << i + 1 << endl; int a; cin >> a; a--; r[i] = a / n; c[i] = a % n; } set sr; set sc; rep(i, n) sr.insert(i); rep(i, n) sc.insert(i); rep(i, n - 1) { sr.erase(r[i]); sc.erase(c[i]); } r.back() = *sr.begin(); c.back() = *sc.begin(); vector> ans(n, vector(n)); rep(i, n) rep(j, n) { ans[i][j] = r[i] * n + c[j]; } // for (int i : r) // cout << i << " "; // cout << endl; // for (int i : c) // cout << i << " "; // cout << endl; cout << "? "; cout << 1 << " " << 2 << endl; int a; cin >> a; a--; cout << "!" << endl; if (ans[0][1] == a) { rep(i, n) { rep(j, n) { cout << ans[i][j] + 1 << " "; } cout << endl; } } else { rep(i, n) { rep(j, n) { cout << ans[j][i] + 1 << " "; } cout << endl; } } return 0; }