eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Вирусы

Вирусы

В некоторой антивирусной компании занимаются исследованием вирусов. Им известно о существовании \textbf{m} типов вирусов. Каждый вирус задается строкой из строчных букв латинского алфавита. Вирусам разного типа соответствуют разные строки. Недавно начались исследования ранее не изучавшихся объектов --- \textit{полностью зараженных строк}. Строка \textbf{s} называется \textit{полностью зараженной}, если для любого ее символа существует подстрока \textbf{s}, содержащая этот символ и являющаяся вирусом. Ваша задача --- по заданным вирусам найти количество полностью зараженных строк длины \textbf{n}. Так как это число может быть очень большим, выведите его по модулю \textbf{10^9+7}. \InputFile Первая строка содержит два целых числа \textbf{n} и \textbf{m} (\textbf{1} ≤ \textbf{n} ≤ \textbf{400}; \textbf{1} ≤ \textbf{m} ≤ \textbf{20}). Далее в \textbf{m} строках задано описание вирусов. В каждой из этих строк задана последовательность строчных букв латинского алфавита. Длина каждого вируса положительна и не превосходит \textbf{20} символов. \OutputFile Выведите единственное целое число --- остаток от деления числа полностью зараженных строк на \textbf{10^9+7}.
Лимит времени 2 секунды
Лимит использования памяти 256 MiB
Входные данные #1
5 2
aba
babc
Выходные данные #1
2
Источник Russian-Code-Cup-2011 Отборочный раунд