#include <bits/stdc++.h>
using namespace std;
const int maxN = 100 + 10;
int k;
vector<int> G[maxN];
int ans[maxN][maxN];
void solve() {
  for (int i = 0; i < 100; i++) {
    for (int j = 0; j < i; j++) {
      if (k >= j) {
        G[i].push_back(j);
        G[j].push_back(i);
        k -= j;
      }
    }
  }
  for (int i = 0; i < 100; i++) {
    for (int j = 0; j < G[i].size(); j++) {
      ans[i][G[i][j]] = 1;
    }
  }
}
void out() {
  cout << 100 << endl;
  for (int i = 0; i < 100; i++) {
    for (int j = 0; j < 100; j++) {
      cout << ans[i][j];
    }
    cout << endl;
  }
}
int main() {
  cin >> k;
  solve();
  out();
  return 0;
}
