eolymp
bolt
Try our new interface for solving problems
Problems

Stickers

Stickers

В магазине за углом продаётся \textbf{n} различных видов стикеров, \textbf{i}-й вид содержит \textbf{d}-буквенное слово \textbf{s_i}, состоящее из заглавных латинских букв. Все стикеры одного вида идентичны. Можно купить сколько угодно стикеров каждого вида. Требуется составить слово \textbf{t} из продающихся в магазине стикеров, при этом разрешается наклеивать стикер поверх уже существующих. Запрещается отрезать части стикеров, а также как-либо ещё модифицировать их. \includegraphics{https://static.e-olymp.com/content/a0/a01d6fe5baf86fd274dfc5600a30f76cc672dd3c.jpg} Более формально, изначально у нас есть строка \textbf{z}, состоящая из \textbf{m} символов "\textbf{#}" (здесь \textbf{m} - длина строки \textbf{t}). За одно действие мы можем выбрать любую из строк \textbf{s_i} и целое число \textbf{p} между \textbf{0} и \textbf{m-d}, и для каждого \textbf{j} \{\textbf{1}, ..., \textbf{d}\}заменить \textbf{(p+j)}-й символ слова \textbf{z} на \textbf{j}-й символ слова \textbf{s_i} (символы в строках пронумерованы с единицы). Требуется найти минимальное количество таких действий, после которого получится требуемое слово \textbf{t}. \InputFile Первая строка ввода содержит два целых числа \textbf{n} и \textbf{d} (\textbf{1} ≤ \textbf{n}, \textbf{d} ≤ \textbf{50}) - количество видов стикеров и количество букв, написанных на каждом стикере. \textbf{i}-я из последующих \textbf{n} строк задаёт один из видов стикеров и содержит ровно \textbf{d} заглавных латинских букв - слово\textbf{s_i}, написанное на стикере \textbf{i}-го вида. Последняя строка ввода задаёт требуемое слово \textbf{t}, состоящее из не менее чем одной и не более чем \textbf{10^\{4 \}}заглавных латинских букв. \OutputFile Выведите одно целое число - минимальное количество стикеров, которое потребуется для того, чтобы составить слово \textbf{t}. Если составить слово из данного набора стикеров невозможно, выведите слово "\textbf{NO}" вместо числа.
Time limit 7 seconds
Memory limit 512 MiB
Input example #1
2 3
ABA
BCB
ABACABA
Output example #1
3
Input example #2
2 4
ABBA
BCBA
ABBCBBA
Output example #2
NO
Source Yandex.Algorithm, Online Round 1, July 14, 2013