#include <bits/stdc++.h>
using namespace std;
int a[51][51];
bool i2_0, i2_1;
int process[6];
bool palindrome() {
  i2_0 = 0;
  i2_1 = 0;
  int p[6];
  for (__typeof(6) i = 0; i < 6; i++) {
    if (process[i] == 2)
      p[i] = 0;
    else if (process[i] == 3)
      p[i] = 1;
    else
      p[i] = process[i];
  }
  if (p[0] == p[5] && p[1] == p[4])
    i2_0 = 1;
  else if (p[0] == p[5] && p[1] == p[2])
    i2_0 = 1;
  else if (p[0] == p[5] && p[3] == p[4])
    i2_0 = 1;
  for (__typeof(6) i = 0; i < 6; i++) {
    if (process[i] == 2)
      p[i] = 1;
    else if (process[i] == 3)
      p[i] = 0;
    else
      p[i] = process[i];
  }
  if (p[0] == p[5] && p[1] == p[4])
    i2_1 = 1;
  else if (p[0] == p[5] && p[1] == p[2])
    i2_1 = 1;
  else if (p[0] == p[5] && p[3] == p[4])
    i2_1 = 1;
  if (i2_0 ^ i2_1)
    return true;
  else
    return false;
}
signed main() {
  ios_base::sync_with_stdio();
  cin.tie(0);
  cout.tie(0);
  ;
  int n;
  cin >> n;
  int check;
  a[0][0] = 1;
  for (int row = 0; row < n; row += 2) {
    for (int i = 0; i < n; i += 2) {
      if (i + 2 >= n) continue;
      if (row == n - 1 && i == n - 3) continue;
      cout << "? " << row + 1 << " " << i + 1 << " " << row + 1 << " " << i + 3
           << endl;
      cin >> check;
      if (check)
        a[row][i + 2] = a[row][i];
      else
        a[row][i + 2] = 1 - a[row][i];
    }
    if (row + 2 < n) {
      cout << "? " << row + 1 << " " << 1 << " " << row + 3 << " " << 1 << endl;
      cin >> check;
      if (check)
        a[row + 2][0] = a[row][0];
      else
        a[row + 2][0] = 1 - a[row][0];
    }
  }
  for (int row = 0; row < n - 2; row += 2) {
    for (int i = 1; i < n; i += 2) {
      cout << "? " << row + 1 << " " << i << " " << row + 2 << " " << i + 1
           << endl;
      cin >> check;
      if (check)
        a[row + 1][i] = a[row][i - 1];
      else
        a[row + 1][i] = 1 - a[row][i - 1];
    }
  }
  a[0][1] = 2;
  for (int row = 0; row < n; row += 2) {
    for (int i = 1; i < n; i += 2) {
      if (i + 2 >= n) continue;
      cout << "? " << row + 1 << " " << i + 1 << " " << row + 1 << " " << i + 3
           << endl;
      cin >> check;
      if (check)
        a[row][i + 2] = a[row][i];
      else
        a[row][i + 2] = 5 - a[row][i];
    }
    if (row + 2 < n) {
      cout << "? " << row + 1 << " " << 2 << " " << row + 3 << " " << 2 << endl;
      cin >> check;
      if (check)
        a[row + 2][1] = a[row][1];
      else
        a[row + 2][1] = 5 - a[row][1];
    }
  }
  for (int row = 0; row < n - 2; row += 2) {
    for (int i = 2; i < n; i += 2) {
      cout << "? " << row + 1 << " " << i << " " << row + 2 << " " << i + 1
           << endl;
      cin >> check;
      if (check)
        a[row + 1][i] = a[row][i - 1];
      else
        a[row + 1][i] = 5 - a[row][i - 1];
    }
  }
  for (int i = 1; i < n; i += 2) {
    cout << "? " << i + 1 << " " << 1 << " " << i + 2 << " " << 2 << endl;
    cin >> check;
    if (check)
      a[i][0] = a[i + 1][1];
    else
      a[i][0] = 5 - a[i + 1][1];
  }
  int cur;
  for (__typeof(n - 1) i = 0; i < n - 1; i++) {
    for (__typeof(n - 2) j = 0; j < n - 2; j++) {
      cur = 0;
      for (__typeof(2) x = 0; x < 2; x++) {
        for (__typeof(3) y = 0; y < 3; y++) {
          process[cur] = a[i + x][j + y];
          cur++;
        }
      }
      if (palindrome()) {
        cout << "? " << i + 1 << " " << j + 1 << " " << i + 2 << " " << j + 3
             << endl;
        cin >> check;
        if (check == i2_0) {
          for (__typeof(n) u = 0; u < n; u++) {
            for (__typeof(n) v = 0; v < n; v++) {
              if (a[u][v] == 2)
                a[u][v] = 0;
              else if (a[u][v] == 3)
                a[u][v] = 1;
            }
          }
        } else {
          for (__typeof(n) u = 0; u < n; u++) {
            for (__typeof(n) v = 0; v < n; v++) {
              if (a[u][v] == 2)
                a[u][v] = 1;
              else if (a[u][v] == 3)
                a[u][v] = 0;
            }
          }
        }
        cout << "!\n";
        for (__typeof(n) i = 0; i < n; i++) {
          for (__typeof(n) j = 0; j < n; j++) {
            cout << a[i][j];
          }
          cout << endl;
        }
        return 0;
      }
    }
  }
}
