#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx")
using namespace std;
const long long inf = 1000000000000000000;
const long long KOK = 100000;
const long long LOG = 30;
const long long li = 500005;
const long long mod = 1000000007;
int n, m, b[li], a[li], k, flag, t;
int cev;
string s;
vector<int> v;
char c;
int main(void) {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  int son = n;
  char c = 'a';
  while (son != 0) {
    int yaz = 0;
    while (a[son] && son == n) {
      printf("%c", c);
      yaz++;
      for (int i = 1; i <= min(son, yaz); i++) a[i]--;
      if (c == 'a') c = 'b';
      if (c == 'b') c = 'a';
    }
    if (son != n) {
      while (a[son] > 0) {
        int x = son;
        while (x) {
          printf("%c", c);
          for (int i = 1; i <= min(son, x); i++) a[i]--;
          x--;
        }
        if (c == 'a')
          c = 'b';
        else if (c == 'b')
          c = 'a';
      }
    }
    son--;
  }
  return 0;
}
