#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  scanf("%d", &n);
  int a[51][51];
  a[1][1] = 1;
  a[n][n] = 0;
  int t;
  for (int i = 3; i <= n; i += 2) {
    cout << "? 1 " << i - 2 << " 1 " << i << endl;
    scanf("%d", &t);
    if (t == 0)
      a[1][i] = 1 - a[1][i - 2];
    else
      a[1][i] = a[1][i - 2];
  }
  for (int i = 1; i <= n; i += 2) {
    for (int j = 3; j <= n; j += 2) {
      if (i == n && j == n) continue;
      cout << "? " << j - 2 << " " << i << " " << j << " " << i << endl;
      scanf("%d", &t);
      if (t == 0)
        a[j][i] = 1 - a[j - 2][i];
      else
        a[j][i] = a[j - 2][i];
    }
  }
  for (int i = 2; i <= n; i += 2) {
    for (int j = 2; j <= n; j += 2) {
      cout << "? " << j - 1 << " " << i - 1 << " " << j << " " << i << endl;
      scanf("%d", &t);
      if (t == 0)
        a[j][i] = 1 - a[j - 1][i - 1];
      else
        a[j][i] = a[j - 1][i - 1];
    }
  }
  a[1][2] = 0;
  for (int i = 4; i <= n; i += 2) {
    cout << "? 1 " << i - 2 << " 1 " << i << endl;
    scanf("%d", &t);
    if (t == 0)
      a[1][i] = 1 - a[1][i - 2];
    else
      a[1][i] = a[1][i - 2];
  }
  for (int i = 2; i <= n; i += 2) {
    for (int j = 3; j <= n; j += 2) {
      cout << "? " << j - 2 << " " << i << " " << j << " " << i << endl;
      scanf("%d", &t);
      if (t == 0)
        a[j][i] = 1 - a[j - 2][i];
      else
        a[j][i] = a[j - 2][i];
    }
  }
  cout << "? 2 1 3 2" << endl;
  scanf("%d", &t);
  if (t == 0)
    a[2][1] = 1 - a[3][2];
  else
    a[2][1] = a[3][2];
  for (int i = 3; i <= n; i += 2) {
    cout << "? 2 " << i - 2 << " 2 " << i << endl;
    scanf("%d", &t);
    if (t == 0)
      a[2][i] = 1 - a[2][i - 2];
    else
      a[2][i] = a[2][i - 2];
  }
  for (int i = 1; i <= n; i += 2) {
    for (int j = 4; j <= n; j += 2) {
      cout << "? " << j - 2 << " " << i << " " << j << " " << i << endl;
      scanf("%d", &t);
      if (t == 0)
        a[j][i] = 1 - a[j - 2][i];
      else
        a[j][i] = a[j - 2][i];
    }
  }
  bool ex = 0;
  for (int sum = 3; sum < 2 * n; sum++) {
    if (sum <= n) {
      for (int i = 2; i < sum; i++) {
        int j = sum - i;
        if (a[i - 1][j + 1] != a[i][j]) {
          if (i - 1 > 0 && j - 1 > 0) {
            cout << "? " << i - 1 << " " << j - 1 << " " << i << " " << j + 1
                 << endl;
            scanf("%d", &t);
            if (t == 0) {
              if (a[i - 1][j - 1] != a[i][j + 1]) {
                goto pr;
              } else {
                ex = 1;
                goto pr;
              }
            } else {
              if (a[i - 1][j - 1] != a[i][j + 1]) {
                ex = 1;
                goto pr;
              } else
                goto pr;
            }
          } else if (i - 2 > 0) {
            cout << "? " << i - 2 << " " << j << " " << i << " " << j + 1
                 << endl;
            scanf("%d", &t);
            if (t == 0) {
              if (a[i - 2][j] != a[i][j + 1]) {
                goto pr;
              } else {
                ex = 1;
                goto pr;
              }
            } else {
              if (a[i - 2][j] != a[i][j + 1]) {
                ex = 1;
                goto pr;
              } else
                goto pr;
            }
          } else if (j + 2 <= n) {
            cout << "? " << i - 1 << " " << j << " " << i << " " << j + 2
                 << endl;
            scanf("%d", &t);
            if (t == 0) {
              if (a[i - 1][j] != a[i][j + 2]) {
                goto pr;
              } else {
                ex = 1;
                goto pr;
              }
            } else {
              if (a[i - 1][j] != a[i][j + 2]) {
                ex = 1;
                goto pr;
              } else
                goto pr;
            }
          } else {
            cout << "? " << i - 1 << " " << j << " " << i + 1 << " " << j + 1
                 << endl;
            scanf("%d", &t);
            if (t == 0) {
              if (a[i - 1][j] != a[i + 1][j + 1]) {
                goto pr;
              } else {
                ex = 1;
                goto pr;
              }
            } else {
              if (a[i - 1][j] != a[i + 1][j + 1]) {
                ex = 1;
                goto pr;
              } else
                goto pr;
            }
          }
        }
      }
    } else {
      for (int i = sum - n + 1; i <= n; i++) {
        int j = sum - i;
        if (a[i - 1][j + 1] != a[i][j]) {
          if (i - 1 > 0 && j - 1 > 0) {
            cout << "? " << i - 1 << " " << j - 1 << " " << i << " " << j + 1
                 << endl;
            scanf("%d", &t);
            if (t == 0) {
              if (a[i - 1][j - 1] != a[i][j + 1]) {
                goto pr;
              } else {
                ex = 1;
                goto pr;
              }
            } else {
              if (a[i - 1][j - 1] != a[i][j + 1]) {
                ex = 1;
                goto pr;
              } else
                goto pr;
            }
          } else if (i - 2 > 0) {
            cout << "? " << i - 2 << " " << j << " " << i << " " << j + 1
                 << endl;
            scanf("%d", &t);
            if (t == 0) {
              if (a[i - 2][j] != a[i][j + 1]) {
                goto pr;
              } else {
                ex = 1;
                goto pr;
              }
            } else {
              if (a[i - 2][j] != a[i][j + 1]) {
                ex = 1;
                goto pr;
              } else
                goto pr;
            }
          } else if (j + 2 <= n) {
            cout << "? " << i - 1 << " " << j << " " << i << " " << j + 2
                 << endl;
            scanf("%d", &t);
            if (t == 0) {
              if (a[i - 1][j] != a[i][j + 2]) {
                goto pr;
              } else {
                ex = 1;
                goto pr;
              }
            } else {
              if (a[i - 1][j] != a[i][j + 2]) {
                ex = 1;
                goto pr;
              } else
                goto pr;
            }
          } else {
            cout << "? " << i - 1 << " " << j << " " << i + 1 << " " << j + 1
                 << endl;
            scanf("%d", &t);
            if (t == 0) {
              if (a[i - 1][j] != a[i + 1][j + 1]) {
                goto pr;
              } else {
                ex = 1;
                goto pr;
              }
            } else {
              if (a[i - 1][j] != a[i + 1][j + 1]) {
                ex = 1;
                goto pr;
              } else
                goto pr;
            }
          }
        }
      }
    }
  }
  int z;
  for (int i = 3; i <= n; i++) {
    if (a[i][i] == 0 && a[i - 2][i - 2] == 1) {
      z = i;
      break;
    }
  }
  if (z == n + 1) {
    srand(0);
    ex = rand() % 2;
    goto pr;
  }
  cout << "? " << z - 2 << " " << z - 2 << " " << z - 1 << " " << z << endl;
  scanf("%d", &t);
  if (t == 1) {
    if (a[z - 1][z] == 1) {
      goto pr;
    } else {
      ex = 1;
      goto pr;
    }
  }
  cout << "? " << z - 2 << " " << z - 1 << " " << z << " " << z << endl;
  scanf("%d", &t);
  if (t == 1) {
    if (a[z - 2][z - 1] == 0) {
      goto pr;
    } else {
      ex = 1;
      goto pr;
    }
  }
  if (a[z - 2][z - 1] == a[z - 1][z]) {
    if (a[z - 2][z - 1] != a[z - 1][z - 1])
      goto pr;
    else {
      ex = 1;
      goto pr;
    }
  } else {
    if (a[z - 2][z - 1] == 1)
      goto pr;
    else {
      ex = 1;
      goto pr;
    }
  }
pr:
  cout << "!\n";
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (((i + j) % 2) && ex)
        cout << 1 - a[i][j];
      else
        cout << a[i][j];
    }
    cout << "\n";
  }
  cout.flush();
  return 0;
}
