H. Таблица
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Культист Кирилл нашел таинственную бумажку и магическую табличку размера $$$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