Подарок Диппера

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

Во время очередного приключения Диппер нашел строку ss длинны nn. Он считает, что эта строка является идеальным подарком для Мэйбл. Она привередливая, поэтому не каждая строка ей понравится. К счастью, у Диппера есть знакомый мастер, который умеет изменять строки за определенное количество монет.

Мальчик хочет угодить Мейбл и сделать строку, которая ей понравится, потратив минимальное количество монет. Мастер имеет каталог из mm операций замены. Каждая операция позволяет заменить определенный символ aa в любой позиции строки на символ bb, заплатив cc монет. Любую операцию можно использовать неограниченное количество раз в любой позиции строки. Мастер может заменять символы, которые он сам раньше ставил на эту позицию. В каталоге мастера может быть несколько операций изменение aa на bb с разными стоимостями.

Строка называется kk-строкой, если она может быть представлена в виде kk копий некоторой строки, записанных подряд. Например, строка <<aabaabaabaab>> является одновременно 11-строкой, 22-строкой и 44-строкой, но не является 33-строкой, 55-строкой, 66-строкой и так далее. Назовем строку <<красивой>>, если она является kk-строкой, для kk больше единицы. Мейбл нравятся только красивые строки. Помогите Дипперу понять, может ли он получить красивую строку, а если может, то какое минимальное количество монет ему необходимо потратить на работу мастера.

입력

В первой строке заданы числа nn и mm --- длина строки ss и количество операций (2n1052 \le n \le 10^5; 1m1051 \le m \le 10^5).

Во второй строке задана последовательность маленьких латинских букв длины nn --- строка ss.

Далее следует mm строк. В каждой записаны две маленькие латинские буквы aa, bb и число cc --- операция, которая соответствует замене символа aa на bb за цену cc (0c100,0000 \le c \le 100\\,000).

출력

Если не существует способа сделать строку ss красивой, то выведите -1, иначе выведите количество монет, которое нужно потратить.

힌트

abcdba \to dbcdba \to dbcdbz \to dbcdbc

  1. Заменяем букву a на d, заплатив 1.
  2. Заменяем букву a на z, заплатив 3.
  3. Заменяем букву z на c, заплатив 2.

Ответ: 1 + 3 + 2 = 6

Строка dbcdbc является 2-строкой.