#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 120;
int x[MAX_N];
struct name {
  int a, i;
};
name a[MAX_N];
int used[MAX_N];
vector<vector<name> > ans;
vector<name> temp, add;
bool operator<(name a, name b) { return a.a > b.a || a.a == b.a && a.i < b.i; }
int main() {
  int n, m = 0, q = -1;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> x[i];
    a[i].a = x[i];
    a[i].i = i;
  }
  while (1) {
    sort(a, a + n);
    if (a[0].a == a[n - 1].a) break;
    int m = 0;
    for (int i = 0; i < n; i++) {
      if (a[0].a != a[i].a) break;
      m++;
    }
    if (m == 1) {
      add.clear();
      a[0].a--;
      add.push_back(a[0]);
      a[1].a--;
      a[1].a = max(0, a[1].a);
      add.push_back(a[1]);
      ans.push_back(add);
      add.clear();
    } else {
      if (m % 5 == 1) {
        add.clear();
        add.push_back(a[0]);
        add.push_back(a[1]);
        a[0].a--;
        a[1].a--;
        a[1].a = max(0, a[1].a);
        a[0].a = max(0, a[0].a);
        ans.push_back(add);
        add.clear();
        for (int i = 2; i < 6; i++) {
          add.push_back(a[i]);
          a[i].a--;
          a[i].a = max(0, a[i].a);
        }
        ans.push_back(add);
        add.clear();
        for (int i = 6; i < m; i++) {
          add.push_back(a[i]);
          a[i].a--;
          a[i].a = max(0, a[i].a);
          if (add.size() == 5) {
            ans.push_back(add);
            add.clear();
          }
        }
      } else {
        add.clear();
        for (int i = 0; i < m; i++) {
          add.push_back(a[i]);
          a[i].a--;
          a[i].a = max(0, a[i].a);
          if ((i + 1) % 5 == 0) {
            ans.push_back(add);
            add.clear();
          }
        }
        if (add.size() != 0) ans.push_back(add);
        add.clear();
      }
    }
  }
  cout << a[0].a << endl;
  cout << ans.size() << endl;
  for (int i = 0; i < ans.size(); i++) {
    for (int j = 0; j < n; j++) used[j] = 0;
    for (int j = 0; j < ans[i].size(); j++) used[ans[i][j].i] = 1;
    for (int j = 0; j < n; j++) cout << used[j];
    cout << endl;
  }
  return 0;
}
