#include <bits/stdc++.h>
using namespace std;
int a[123][123], b[123][123], f1[54][54][54][54], f2[54][54][54][54];
int n;
void getans(int i1, int j1, int i2, int j2) {
  int i, j, t;
  printf("? %d %d %d %d\n", i1, j1, i2, j2);
  fflush(stdout);
  scanf("%d", &t);
  if (t == f1[i1][j1][i2][j2]) {
    printf("!\n"), fflush(stdout);
    for (i = 1; i <= n; i++) {
      for (j = 1; j <= n; j++) printf("%d", (1 + a[i][j]) / 2);
      printf("\n");
    }
  } else {
    printf("!\n"), fflush(stdout);
    for (i = 1; i <= n; i++) {
      for (j = 1; j <= n; j++) printf("%d", (1 + b[i][j]) / 2);
      printf("\n");
    }
  }
  exit(0);
}
int main() {
  int i, j, i1, i2, j1, j2, t, j3, i3;
  scanf("%d", &n);
  a[1][1] = 1, a[n][n] = -1;
  for (i = 1; i <= n; i++)
    for (j = 2 - (i % 2); j <= n; j += 2) {
      if (!a[i][j]) {
        if (a[i - 1][j - 1]) {
          printf("? %d %d %d %d\n", i - 1, j - 1, i, j);
          fflush(stdout);
          scanf("%d", &t);
          if (!t)
            a[i][j] = -a[i - 1][j - 1];
          else
            a[i][j] = a[i - 1][j - 1];
          continue;
        }
        if (i > j) {
          printf("? %d %d %d %d\n", i - 2, j, i, j);
          fflush(stdout);
          scanf("%d", &t);
          if (!t)
            a[i][j] = -a[i - 2][j];
          else
            a[i][j] = a[i - 2][j];
          continue;
        } else {
          printf("? %d %d %d %d\n", i, j - 2, i, j);
          fflush(stdout);
          scanf("%d", &t);
          if (!t)
            a[i][j] = -a[i][j - 2];
          else
            a[i][j] = a[i][j - 2];
          continue;
        }
      }
    }
  a[1][2] = 1;
  for (i = 1; i <= n; i++)
    for (j = 3 - (i % 2); j <= n; j += 2) {
      if (!a[i][j]) {
        if (a[i - 1][j - 1]) {
          printf("? %d %d %d %d\n", i - 1, j - 1, i, j);
          fflush(stdout);
          scanf("%d", &t);
          if (!t)
            a[i][j] = -a[i - 1][j - 1];
          else
            a[i][j] = a[i - 1][j - 1];
          continue;
        }
        if (i > j - 1) {
          printf("? %d %d %d %d\n", i - 2, j, i, j);
          fflush(stdout);
          scanf("%d", &t);
          if (!t)
            a[i][j] = -a[i - 2][j];
          else
            a[i][j] = a[i - 2][j];
          continue;
        } else {
          printf("? %d %d %d %d\n", i, j - 2, i, j);
          fflush(stdout);
          scanf("%d", &t);
          if (!t)
            a[i][j] = -a[i][j - 2];
          else
            a[i][j] = a[i][j - 2];
          continue;
        }
      }
    }
  printf("? %d %d %d %d\n", 2, 1, 3, 2);
  fflush(stdout);
  scanf("%d", &t);
  if (!t)
    a[2][1] = -a[3][2];
  else
    a[2][1] = a[3][2];
  j = 1;
  for (i = 4; i <= n; i += 2) {
    printf("? %d %d %d %d\n", i - 2, j, i, j);
    fflush(stdout);
    scanf("%d", &t);
    if (!t)
      a[i][j] = -a[i - 2][j];
    else
      a[i][j] = a[i - 2][j];
    continue;
  }
  for (i = 1; i <= n; i++)
    for (j = 1; j <= n; j++) b[i][j] = (((i + j) & 1) ? -a[i][j] : a[i][j]);
  for (i3 = 0; i3 < n; i3++)
    for (j3 = 0; j3 < n; j3++) {
      for (i2 = i3 + 1; i2 <= n; i2++)
        for (j2 = j3 + 1; j2 <= n; j2++) {
          i1 = i2 - i3, j1 = j2 - j3;
          if (i1 == i2 && j1 == j2)
            f1[i1][j1][i2][j2] = 1, f2[i1][j1][i2][j2] = 1;
          else if (i2 + j2 - i1 - j1 == 1) {
            f1[i1][j1][i2][j2] = (a[i1][j1] == a[i2][j2]);
            f2[i1][j1][i2][j2] = (b[i1][j1] == b[i2][j2]);
          } else {
            if (a[i1][j1] == a[i2][j2] &&
                (f1[i1 + 1][j1][i2 - 1][j2] || f1[i1][j1 + 1][i2][j2 - 1] ||
                 f1[i1 + 1][j1][i2][j2 - 1] || f1[i1][j1 + 1][i2 - 1][j2]))
              f1[i1][j1][i2][j2] = 1;
            else
              f1[i1][j1][i2][j2] = 0;
            if (b[i1][j1] == b[i2][j2] &&
                (f2[i1 + 1][j1][i2 - 1][j2] || f2[i1][j1 + 1][i2][j2 - 1] ||
                 f2[i1 + 1][j1][i2][j2 - 1] || f2[i1][j1 + 1][i2 - 1][j2]))
              f2[i1][j1][i2][j2] = 1;
            else
              f2[i1][j1][i2][j2] = 0;
            if (f1[i1][j1][i2][j2] != f2[i1][j1][i2][j2])
              getans(i1, j1, i2, j2);
          }
        }
    }
}
