Олимпиадный тренинг

Задача . A. Восстановление строки


У Ивана была строка s, состоящая из строчных букв латинского алфавита. Но его подруга Юля решила пошутить над ним и спрятала строку s. Иван решил, что не будет искать строку, а просто сделает новую.

Иван помнит о строке s следующую информацию. Он помнит, что строка ti встречается в строке s количество раз ki или больше, а также помнит ровно ki позиций, с которых начинается вхождение строки ti в строку s — это позиции xi, 1, xi, 2, ..., xi, ki. При этом количество строк ti, про которые помнит Иван, равно n.

Перед вами стоит задача восстановить лексикографически минимальную строку s такую, что она удовлетворяет всей информации, которую помнит Иван. Как строки ti, так и строка s могут содержать только строчные буквы латинского алфавита.

Входные данные

В первой строке следует целое число n (1 ≤ n ≤ 105) — количество строк, о которых помнит Иван.

В следующих n строках следует информация о строках, которые помнит Иван. В i-й строке сначала следует непустая строка ti, затем следует положительное число ki, равное количество раз, которые строка ti встречается в строке s как минимум, а затем следует ki различных целых положительных чисел xi, 1, xi, 2, ..., xi, ki в возрастающем порядке — позиции, в которых начинаются вхождения строки ti в строку s. Гарантируется, что сумма длин строк ti не превосходит 106, 1 ≤ xi, j ≤ 106, 1 ≤ ki ≤ 106, а сумма всех ki не превосходит 106. Среди строк ti могут встречаться повторяющиеся.

Гарантируется, что входные данные непротиворечивы и ответ всегда существует.

Выходные данные

Выведите лексикографически минимальную строку, которая удовлетворяет всей информации, которую помнит Иван.


Примеры
Входные данныеВыходные данные
1 3
a 4 1 3 5 7
ab 2 1 5
ca 1 4
abacaba
2 1
a 1 3
aaa
3 3
ab 1 1
aba 1 3
ab 2 3 5
ababab

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя