#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 101;
int a[MAX_N];
int n;
vector<vector<int>> ans;
pair<int, int> pop(multiset<pair<int, int>, std::greater<pair<int, int>>> &s) {
  pair<int, int> x = *s.begin();
  s.erase(s.begin());
  return x;
}
bool check(int d) {
  ans.clear();
  multiset<pair<int, int>, std::greater<pair<int, int>>> s;
  int sum = 0;
  for (int i = 0; i < n; i++) {
    if (a[i] < d) return false;
    s.insert({a[i] - d, i});
    sum += a[i] - d;
  }
  if (sum % 2 == 1) {
    if (n < 3) return false;
    pair<int, int> x = pop(s), y = pop(s), z = pop(s);
    if (z.first == 0) return false;
    ans.push_back({x.second, y.second, z.second});
    s.insert({x.first - 1, x.second});
    s.insert({y.first - 1, y.second});
    s.insert({z.first - 1, z.second});
    sum -= 3;
  }
  while (sum > 0) {
    if (n < 2) return false;
    pair<int, int> x = pop(s), y = pop(s);
    if (y.first == 0) return false;
    ans.push_back({x.second, y.second});
    s.insert({x.first - 1, x.second});
    s.insert({y.first - 1, y.second});
    sum -= 2;
  }
  return true;
}
void dummy() {
  ans.clear();
  multiset<pair<int, int>, std::greater<pair<int, int>>> s;
  for (int i = 0; i < n; i++) {
    s.insert({a[i], i});
  }
  while ((*s.begin()).first > 0) {
    pair<int, int> x = pop(s), y = pop(s);
    s.insert({(x.first > 1 ? x.first - 1 : 0), x.second});
    s.insert({(y.first > 1 ? y.first - 1 : 0), y.second});
    ans.push_back({x.second, y.second});
  }
}
int main() {
  cin >> n;
  int r = MAX_N;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    r = min(r, a[i]);
  }
  r++;
  int l = 0;
  while (l < r) {
    int m = l + (r - l) / 2;
    if (check(m)) {
      l = m + 1;
    } else {
      r = m;
    }
  }
  if (l == 0 || !check(l - 1)) {
    l = 1;
    dummy();
  }
  cout << l - 1 << endl << ans.size() << endl;
  for (auto p : ans) {
    for (int i = 0; i < n; i++) {
      bool ok = 0;
      for (int x : p) {
        ok |= x == i;
      }
      cout << (ok ? '1' : '0');
    }
    cout << endl;
  }
  return 0;
}
