#include <bits/stdc++.h>
using namespace std;
struct word {
  int l;
  string ans;
  int id;
};
bool operator<(word x, word y) { return (x.l < y.l); }
word a[1111];
int n;
string s;
bool add() {
  int i = s.length() - 1;
  while (i >= 0 && s[i] == '1') i--;
  if (i < 0) return true;
  string ss = "";
  for (int j = 0; j < i; j++) ss += s[j];
  ss += "1";
  for (int j = i + 1; j <= s.length() - 1; j++) ss += "0";
  s = ss;
  return false;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a[i].l;
    a[i].id = i;
  }
  s = "";
  sort(a, a + n);
  for (int k = 0; k < n; k++) {
    int i = k;
    if (k > 0) {
      if (add()) {
        cout << "NO";
        return 0;
      }
    }
    while (a[i].l > s.length()) s += "0";
    a[i].ans = s;
  }
  cout << "YES" << endl;
  for (int k = 0; k < n; k++) {
    int i = 0;
    while (a[i].id != k) i++;
    cout << a[i].ans << endl;
  }
  return 0;
}
