#include <bits/stdc++.h>
using namespace std;
const int M = 1000000000 + 7;
struct re {
  int x, y;
};
int n, a[2][55][55], f[55][55][55][55];
int isDifferent(int x, int y, int u, int v) {
  if (f[x][y][u][v] != -1) return f[x][y][u][v];
  cout << "? " << x << " " << y << " " << u << " " << v << endl;
  cout.flush();
  int diff;
  cin >> diff;
  if (diff == -1) exit(0);
  diff = 1 ^ diff;
  f[x][y][u][v] = diff;
  return diff;
}
void print(int k) {
  cout << "!\n";
  for (int i = (1); (i <= (n)); ++i) {
    for (int j = (1); (j <= (n)); ++j) cout << a[k][i][j];
    cout << endl;
  }
}
int main() {
  memset(f, 255, sizeof(f));
  cin >> n;
  for (int k = (0); (k <= (1)); ++k) {
    memset(a[k], -1, sizeof(a[k]));
    a[k][1][1] = 1;
    a[k][n][n] = 0;
    a[k][1][2] = k;
    a[k][2][3] = a[k][1][2] ^ isDifferent(1, 2, 2, 3);
    a[k][3][2] = a[k][1][2] ^ isDifferent(1, 2, 3, 2);
    a[k][2][1] = a[k][3][2] ^ isDifferent(2, 1, 3, 2);
    for (int i = (1); (i <= (n)); ++i)
      for (int j = (1); (j <= (n)); ++j)
        if (a[k][i][j] == -1) {
          if (i > 2)
            a[k][i][j] = a[k][i - 2][j] ^ isDifferent(i - 2, j, i, j);
          else if (j > 2)
            a[k][i][j] = a[k][i][j - 2] ^ isDifferent(i, j - 2, i, j);
          else
            a[k][i][j] = a[k][i - 1][j - 1] ^ isDifferent(i - 1, j - 1, i, j);
        }
  }
  for (int k = (0); (k <= (1)); ++k) {
    for (int i = (3); (i <= (n)); ++i)
      for (int j = (2); (j <= (n)); ++j) {
        if (a[k][i - 2][j - 1] == a[k][i][j])
          if (a[k][i - 1][j - 1] == a[k][i][j - 1] ||
              a[k][i - 2][j] == a[k][i - 1][j]) {
            if (isDifferent(i - 2, j - 1, i, j)) {
              print(1 ^ k);
            } else {
              print(k);
            }
            return 0;
          }
      }
    for (int i = (2); (i <= (n)); ++i)
      for (int j = (3); (j <= (n)); ++j) {
        if (a[k][i - 1][j - 2] == a[k][i][j])
          if (a[k][i - 1][j - 1] == a[k][i - 1][j] ||
              a[k][i][j - 2] == a[k][i][j - 1]) {
            if (isDifferent(i - 1, j - 2, i, j)) {
              print(1 ^ k);
            } else {
              print(k);
            }
            return 0;
          }
      }
  }
}
