Вы играете на смартфоне в игру <<Родные просторы>>, в которой управляющий Остап помогает помещику восстановить отцовский дом. Игра происходит следующим образом.
Дана последовательность из n кристаллов, расположенных в один ряд слева направо. Каждый кристалл относится к одному из k видов, обозначенных первыми k английскими буквами. Таким образом, последовательность кристаллов записывается строкой английских букв.
За один ход игры можно удалить из последовательности один кристалл. Цель игрока --- получить в результате применения разрешенных видов удалений лексикографически минимально возможную строку.
Разрешённые виды удаления кристаллов заданы таблицей A размера k×k из нулей и единиц. Если A_ij=1, то разрешается удалить кристалл вида j, если непосредственно слева от него находится кристалл вида i. Данные действия можно выполнять в любом порядке.
Напомним, что строка x лексикографически меньше строки y, если выполнено одно из двух условий:
В первой строке даны два целых числа k и n (1≤k≤26, 1≤n≤500,000) --- количество видов кристаллов и длина исходной последовательности кристаллов.
В следующих k строках задана таблица A, i-я строка содержит ровно k символов 0 или 1. Символ в i-й строке на j-й позиции равен A_ij.
В последней строке записаны n строчных английских букв, задающие исходную последовательность кристаллов. Гарантируется, что в строке встречаются только первые k букв английского алфавита, i-я по счёту буква английского алфавита обозначает i-й вид кристаллов.
Выведите лексикографически минимальную строку, которую можно получить из исходной строки разрешёнными действиям.
В примерах из условия разрешены следующие виды удалений (удаляемый символ зачёркнут, символ непосредственно перед ним подчёркнут): a, bb, cca.
Возможная последовательность удалений в первом примере:
abacabaabacabaabacaaabacaaabacaabacaabacabacaacВозможная последовательность удалений во втором примере:
bcacbbcacbbacb