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

Reduction

Reduction

Дана строка \textbf{S} и список \textbf{M}, состоящий из \textbf{N} слов, каждое из которых длины \textbf{L}. За одну операцию можно выбрать некоторую подстроку строки \textbf{S}, если такая встречается в качестве слова в списке \textbf{M}, и вырезать из строки \textbf{S}. После чего оставшиеся части строки \textbf{S}, если такие есть, склеиваются. Определить, за какое минимальное количество операций можно уничтожить всю строку \textbf{S}. Гарантируется, что это можно сделать. \InputFile В первой строке слово \textbf{S}. Во второй строке целое число \textbf{N} --- количество слов в списке. Далее \textbf{N} строк, в каждой из которых по одному слову из списка \textbf{M}. Все слова состоят только из строчных латинских букв. \OutputFile Одно число --- минимальное количество операций, необходимое для уничтожения строки \textbf{S}. \textbf{Ограничения} \textbf{1} ≤ \textbf{|S|} ≤ \textbf{100} \textbf{1} ≤ \textbf{N} ≤ \textbf{100} \textbf{1} ≤ \textbf{|M_i|} ≤ \textbf{100} \textbf{1} ≤ \textbf{L} ≤ \textbf{|S|}
Лимит времени 1 секунда
Лимит использования памяти 256 MiB
Входные данные #1
abacabada
4
aba
aca
ada
abb
Выходные данные #1
3