| Турнир Архимеда 2021 |
|---|
| Закончено |
Культист Кирилл нашел таинственную бумажку и магическую табличку размера $$$n \times m$$$. На бумажке написаны $$$n \times m$$$ древних текстов $$$A_{i,j}$$$ и $$$m$$$ чисел $$$w_i$$$, где $$$w_i$$$ задает ширину $$$i$$$-го столбца таблички. Каждый текст состоит из нескольких слов, разделённых пробелами.
Таблица явно излучает злую ауру, и Кирилл хочет пробудить запертое в ней зло. Для этого надо заполнить таблицу древними текстами. В $$$j$$$-й ячейке $$$i$$$-й строки таблицы должен находиться текст $$$A_{i,j}$$$. Положение очередного слова в ячейке должно выбираться так: если оно вместе с пробелом перед ним помещается в последнюю строку ячейки (то есть длина строки вместе с ним не превосходит $$$w_i$$$), то слово нужно вывести в этой строке, иначе нужно перенести его на новую строку. При этом для проведения ритуала в каждой строке таблицы все высоты текстов должны быть одинаковыми: если какой-то текст слишком короткий, то он должен быть дополнен в конце строками, полностью заполненными пробелами. Верно и обратное: не должно быть строки, которая заполнена пробелами во всех пересекающих её клетках (то есть такой строки, при удалении которой всё ещё получается корректная таблица). В то же время любая строка в любой ячейке $$$j$$$-го столбца должна быть длины $$$w_j$$$: если она короче, то должна быть дополнена пробелами справа.
Ваша задача — оцифровать полученную Кириллом таблицу для музея истории культа и вывести ее на экран. Клетки по вертикали должны быть разделены линиями из символов «|», а по горизонтали — из символов «-». На пересечениях вертикальных и горизонтальных линий должны стоять символы «+».
Первая строка ввода cодержит целые числа $$$n$$$ и $$$m$$$, записанные через пробел — количество строк и столбцов в таблице ($$$1 \leqslant n,m \leqslant 50$$$).
Каждая из следующих $$$m$$$ строк содержит целое число $$$w_i$$$ — ширину $$$i$$$-го столбца таблицы ($$$1 \leqslant w_i \leqslant 20$$$).
Далее следуют $$$n$$$ блоков по $$$m$$$ строк, $$$j$$$-я строка в $$$i$$$-м блоке содержит слова, которые должны быть записаны в ячейку на пересечении строки $$$i$$$ и столбца $$$j$$$. Слова в строке разделены одиночными пробелами. Слова состоят из символов с ASCII-кодами от $$$33$$$ до $$$126$$$. Гарантируется, что в каждой из этих строк приведено хотя бы одно слово.
Если заполнить таблицу невозможно, выведите единственную строку «-1».
Иначе выведите таблицу в описанном формате. В выводе не должно быть лишних пробелов и переводов строк. Перевод строки после таблицы выводить не обязательно.
2 2 3 4 a b abcd a ab cd
+---+----+ |a b|abcd| +---+----+ |a |ab | | |cd | +---+----+
1 1 6 abacaba
-1
| Название |
|---|


