#include <bits/stdc++.h>
using namespace std;
bool matrix[111][111];
int all = 0;
int n = 100;
int check(int a, int b) {
  int answer = 0;
  for (int i = 0; i < n; i++) {
    if (matrix[a][i] && matrix[b][i]) answer++;
  }
  return answer;
}
void add(int a, int b) {
  matrix[a][b] = !matrix[a][b];
  matrix[b][a] = !matrix[b][a];
}
int main() {
  int k;
  scanf("%d", &k);
  for (int i = 0; i < 100; i++) {
    for (int j = 0; j < 100; j++) {
      matrix[i][j] = false;
    }
  }
  all = 1;
  matrix[0][2] = true;
  matrix[0][1] = true;
  matrix[1][0] = true;
  matrix[2][0] = true;
  matrix[2][1] = true;
  matrix[1][2] = true;
  for (int i = 0; i < n; i++) {
    if (i > 3 || i == 2) {
      matrix[3][i] = true;
      matrix[i][3] = true;
    }
  }
  for (int i = 0; i < 50; i++) {
    for (int z = 0; z < n - 1; z++) {
      for (int posI = z + 1; posI < n; posI++) {
        if (matrix[z][posI]) continue;
        int ch = check(z, posI);
        if (ch != 0 && all != k) {
          add(z, posI);
          all += ch;
        }
        if (all > k) {
          for (int i1 = 0; i1 < n - 1; i1++) {
            for (int i2 = i1 + 1; i2 < n; i2++) {
              if (!matrix[i1][i2]) continue;
              int ch = check(i1, i2);
              if (ch == all - k) {
                add(i1, i2);
                all -= ch;
                break;
              }
            }
          }
        }
        if (all > k) {
          for (int i1 = 0; i1 < n - 1; i1++) {
            for (int i2 = i1 + 1; i2 < n; i2++) {
              if (!matrix[i1][i2]) continue;
              int ch = check(i1, i2);
              if (ch >= all - k) {
                add(i1, i2);
                all -= ch;
                break;
              }
            }
          }
        }
        if (all == k) {
          printf("%d\n", n);
          for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
              printf("%d", matrix[i][j]);
              if (j == n - 1) printf("\n");
            }
          }
          return 0;
        }
      }
    }
  }
  printf("%d\n", n);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      printf("%d", matrix[i][j]);
      if (j == n - 1) printf("\n");
    }
  }
  return 0;
}
