#include<bits/stdc++.h> #define MAX_N 100000 usingnamespace std; template <classT> inlinevoidread(T &x){ x = 0; int c = getchar(), f = 1; for (; !isdigit(c); c = getchar()) if (c == 45) f = -1; for (; isdigit(c); c = getchar()) (x *= 10) += f*(c-'0'); } int n, nxt[MAX_N+5], s[MAX_N+5]; bool mrk[26]; intmain(){ read(n); for (int i = 0; i < n; i++) read(nxt[i]), nxt[i] = i-nxt[i]; for (int p = 1; p < n; p++) { if (~nxt[p]) s[p] = s[nxt[p]]; else { memset(mrk, false, sizeof mrk); for (int q = nxt[p-1]; ~q; q = nxt[q]) mrk[s[q+1]] = true; for (int c = 1; c < 26; c++) if (!mrk[c]) {s[p] = c; break;} } } for (int i = 0; i < n; i++) printf("%c", 'a'+s[i]); return0; }