#include <bits/stdc++.h>
using namespace std;
char ans[100010 * 100];
char s[100010 * 10];
int f[100010 * 100];
int getf(int k) { return k == f[k] ? k : f[k] = getf(f[k]); }
int main() {
  int n, k, LEN = 0, id;
  cin >> n;
  for (int i = 0; i < 100010 * 100; i++) f[i] = i;
  for (int i = 0; i < n; i++) {
    scanf("%s %d", s, &k);
    int len = strlen(s);
    while (k--) {
      scanf("%d", &id);
      for (int i = getf(id); i < id + len; i = f[i] = getf(i + 1)) {
        ans[i] = s[i - id];
      }
      LEN = max(LEN, id + len);
    }
  }
  for (int i = 1; i < LEN; i++) {
    if (ans[i] == '\0') ans[i] = 'a';
  }
  puts(ans + 1);
  return 0;
}
