D. Мессенджер
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Каждый сотрудник компании «Blake Technologies» пользуется специализированным приложением для мгновенного обмена сообщениями, которое носит название «Blake Messenger». Все сотрудники любят это приложение и пользуются им постоянно. Однако не всё так гладко, как хотелось бы. Многим не хватает очень важной функции — поиска по сообщениям. Поэтому было принято решение реализовать эту функцию в следующей версии мессенджера. К сожалению, из-за особенностей хранения сообщений разработчикам столкнулись с некоторыми проблемами...

Все сообщения в приложении представляют собой строки, состоящие только из строчных букв английского алфавита. В целях снижения нагрузки эти строки передаются и хранятся в сжатом виде. Алгоритм сжатия работает следующим образом: строка s разбивается на n последовательных блоков одинаковых букв. Такую часть можно описать парой (li, сi), где li — длина i-й части, а ci — символ, который используется в i-й части. Таким образом, строку s можно записать в сжатом виде парами .

Требуется написать программу, которая по заданным сжатым строкам t и s находит все вхождения строки s в строку t. Разработчики понимают, что таких вхождений может быть очень много, поэтому требуется вывести только количество различных позиций вхождений строки s в строку t. Напомним, что позиция p является позицией вхождения строки s в строку t тогда и только тогда, когда tptp + 1...tp + |s| - 1 = s, где ti — i-й символ строки t.

Обратите внимание на то, что, к примеру, строка "aaaa" может быть сжата несколькими способами: , , ...

Входные данные

В первой строке входных данных записаны два целых числа n и m (1 ≤ n, m ≤ 200 000) — количество блоков, из которых состоят строки t и s соответственно.

Во второй строке записаны описания n блоков строки t в формате "li-ci" (1 ≤ li ≤ 1 000 000) — длина i-го блока строки t и соответствующая строчная буква английского алфавита.

Во второй строке записаны описания m блоков строки s в формате "li-ci" (1 ≤ li ≤ 1 000 000) — длина i-го блока строки s и соответствующая строчная буква английского алфавита.

Выходные данные

Выведите единственное целое число — количество вхождений строки s в строку t.

Примеры
Входные данные
5 3
3-a 2-b 4-c 3-a 2-c
2-a 2-b 1-c
Выходные данные
1
Входные данные
6 1
3-a 6-b 7-a 4-c 8-e 2-a
3-a
Выходные данные
6
Входные данные
5 5
1-h 1-e 1-l 1-l 1-o
1-w 1-o 1-r 1-l 1-d
Выходные данные
0
Примечание

В первом примере t = "aaabbccccaaacc", a s = "aabbc". Строка s входит в строку t только в одной позиции p = 2.

Во втором тесте t = "aaabbbbbbaaaaaaacccceeeeeeeeaa", а s = "aaa". Строка s входит в строку t в следующих позициях: p = 1, p = 10, p = 11, p = 12, p = 13, p = 14.