#include <bits/stdc++.h>
using namespace std;
int mat[51][51];
int ask(int x1, int y1, int x2, int y2) {
  cout << "? " << x1 << " " << y1 << " " << x2 << " " << y2 << endl;
  cout.flush();
  int x;
  cin >> x;
  return x;
}
int32_t main() {
  int n;
  cin >> n;
  mat[1][1] = 1;
  for (int i = 3; i <= n; ++i) {
    int q = ask(1, i - 2, 1, i);
    if (q == 1)
      mat[1][i] = mat[1][i - 2];
    else
      mat[1][i] = 1 - mat[1][i - 2];
  }
  for (int i = 2; i <= n; ++i) {
    for (int j = n; j >= 1; --j) {
      if (i == n && j == n) continue;
      if (j == 1)
        mat[i][j] = ((mat[i][j + 2]) ^ (!ask(i, j, i, j + 2)));
      else
        mat[i][j] = ((mat[i - 1][j - 1]) ^ (!ask(i - 1, j - 1, i, j)));
    }
  }
  int flag = 0;
  for (int i = 1; i < n - 1; i++) {
    if (mat[i][i] == 1 && mat[i + 2][i + 2] == 0) {
      if (mat[i][i + 1] == mat[i + 2][i + 1]) {
        if (mat[i + 1][i + 1]) {
          int q = ask(i, i, i + 2, i + 1);
          if (q == 0) {
            if (mat[i][i + 1] == 1) flag = 1;
          } else {
            if (mat[i][i + 1] == 0) flag = 1;
          }
        } else {
          int q = ask(i, i + 1, i + 2, i + 2);
          if (q == 0) {
            if (mat[i][i + 1] == 0) flag = 1;
          } else {
            if (mat[i][i + 1] == 1) flag = 1;
          }
        }
      } else {
        if (mat[i + 1][i + 1] == 0) {
          int q = ask(i, i, i + 2, i + 1);
          if (q == 0) {
            if (mat[i][i + 1] == 0) flag = 1;
          } else {
            if (mat[i][i + 1] == 1) flag = 1;
          }
        } else {
          int q = ask(i, i + 1, i + 2, i + 2);
          if (q == 0) {
            if (mat[i][i + 1] == 0) flag = 1;
          } else {
            if (mat[i][i + 1] == 1) flag = 1;
          }
        }
      }
      break;
    }
  }
  cout << "!" << endl;
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= n; ++j) {
      if ((i % 2 == 1 && j % 2 == 0) || (i % 2 == 0 && j % 2 == 1))
        cout << ((mat[i][j]) ^ flag);
      else
        cout << mat[i][j];
    }
    cout << endl;
  }
  return 0;
}
