#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int>> l;
string ans[1010];
string act;
void bkt(int n) {
  if (l.empty() || l.back().first < n) return;
  if (n == l.back().first) {
    ans[l.back().second] = act;
    l.pop_back();
    return;
  }
  act.push_back('0');
  bkt(n + 1);
  act.back() = '1';
  bkt(n + 1);
  act.pop_back();
}
int main() {
  int n;
  cin >> n;
  l.resize(n);
  for (int i(0); i < n; i++) {
    cin >> l[i].first;
    l[i].second = i;
  }
  sort(l.rbegin(), l.rend());
  bkt(0);
  if (!l.empty()) {
    cout << "NO\n";
  } else {
    cout << "YES\n";
    for (int i(0); i < n; i++) cout << ans[i] << '\n';
  }
  return 0;
}
