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

Текст на заборе

Текст на заборе

Мэр города Речуйска распорядился штрафовать за употребление нежелательных слов и обнародовал список этих слов с размером штрафа за каждое. Все эти слова состоят из букв "\textbf{I}", "\textbf{N}", "\textbf{W}". Некто строит незамкнутый забор длиной \textbf{N} (\textbf{N} ≤ \textbf{100}) досок. Имеются доски, на каждой из которых написана одна из букв "\textbf{I}", "\textbf{N}" или "\textbf{W}". Получившийся забор будет содержать надпись из вышеназванных букв. За каждое нежелательное слово, образуемое какими-либо последовательно стоящими буквами (при прочтении слева направо), придется заплатить штраф, причем столько раз, сколько раз оно встречается на заборе. Например, если запрещенными словами являются \textbf{IN} --- штраф \textbf{1} рубль и \textbf{WIWI} --- штраф \textbf{100} рублей, то за построение забора \textbf{WIWIWINI} будет назначен штраф \textbf{201} рубль. Требуется написать программу определения такой последовательности досок в заборе, для которой штраф минимален. \textit{\textbf{Ограничения}} \begin{itemize} \item Штрафы выражаются в рублях Речуйска и представляются целыми числами от \textbf{1} до \textbf{100}. \item Количество запрещенных слов ≤ \textbf{50}. \item Длины запрещенных слов ≤ \textbf{6} символов. \end{itemize} \InputFile Первая строка файла входных данных содержит длину забора \textbf{N}, вторая --- количество слов в списке мэра \textbf{M}. В каждой из последующих \textbf{M} строк записано нежелательное слово и через пробел --- соответствующий штраф. Все слова попарно различны, состоят только из больших букв латинского алфавита "\textbf{I}", "\textbf{N}" или "\textbf{W}". Входные данные корректны. \OutputFile Первая строка выходного файла должна содержать значение минимального штрафа.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
8
8
W 10
I 10
N 30
WI 1
WW 10
II 11
WIW 2
IWI 3
Выходные данные #1
98