#include <bits/stdc++.h>
using namespace std;
void fast() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
}
long long int maximum(long long int a, long long int b) {
  if (a > b)
    return a;
  else
    return b;
}
long long int power(long long int a, long long int n) {
  long long int result = 1;
  while (n > 0) {
    if (n & 1) {
      result = result * a;
    }
    a = a * a;
    n = n >> 1;
  }
  return result;
}
int main() {
  fast();
  long long int t;
  cin >> t;
  while (t--) {
    long long int n;
    cin >> n;
    long long int a[n];
    for (int i = 0; i < n; i++) cin >> a[i];
    char k = 'b';
    char cur = 'a';
    string prev = "";
    for (int i = 0; i < n; i++) {
      if (i == 0) {
        for (int j = 0; j < a[i]; j++) {
          prev += cur;
        }
        if (a[i] == 0) {
          prev = cur;
        }
        cout << prev << endl;
      } else {
        if (a[i] == 0 && a[i - 1] == 0) {
          cur++;
          if (cur == 'z') {
            cur = 'b';
          }
          prev = cur;
          cout << prev << endl;
        } else if (a[i - 1] > a[i]) {
          prev = prev.substr(0, a[i - 1]);
          cout << prev << endl;
        } else {
          prev = prev.substr(0, a[i - 1]);
          cur++;
          if (cur == 'z') cur = 'b';
          for (int j = 0; j < a[i] - a[i - 1]; j++) prev += cur;
          cout << prev << endl;
        }
      }
    }
    if (a[n - 1] != 0) {
      cout << prev.substr(0, a[n - 1]);
      cout << endl;
    } else {
      cur++;
      if (cur == 'z') cur = 'a';
      cout << cur << endl;
    }
  }
}
