G. Песни сирен
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод
Кто по незнанию приближается к ним и слышит голос сирен, тот больше не возвращается.

Гомер, Одиссея

Во времена Ясона и Аргонавтов, было хорошо известно, что сирены используют свои песни, чтобы заманивать моряков к себе на погибель. Но немногие знали, что каждый раз сирены, когда зовут моряков по имени, те становятся слабее и более уязвимыми.

Для целей этой задачи, и песни сирен, и имена моряков будем представлять строками, состоящими из строчных английских букв. Чем больше раз имя моряка появляется как непрерывная подстрока в песне, тем моряк в большей опасности.

Ясон обнаружил, что сирены могут петь одну из $$$n+1$$$ песен, которые имеют следующую структуру: пусть $$$s_i$$$ ($$$0 \leq i \leq n$$$) будет $$$i$$$-й песней, а $$$t$$$ — некоторой строкой длины $$$n$$$, тогда для всех $$$i < n$$$: $$$s_{i+1} = s_i t_i s_i$$$. другими словами, $$$i+1$$$-я песня это конкатенация $$$i$$$-й песни, $$$i$$$-й буквы (в $$$0$$$ индексации) строки $$$t$$$, и $$$i$$$-й песни.

К счастью, он также знает $$$s_0$$$ и $$$t$$$. Ясон интересуется, сколько раз имя моряка встречается в конкретной песне. Ответьте на $$$q$$$ вопросов: дано имя моряка ($$$w$$$) и номер песни ($$$i$$$), выведите количество вхождений $$$w$$$ в $$$s_i$$$ как подстроки. Так как это число может быть довольно большим, выведите его по модулю $$$10^9+7$$$.

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

В первой строке дано два целых числа $$$n$$$ и $$$q$$$ ($$$ 1 \leq n, q \leq 10^5$$$), обозначающих что есть $$$n+1$$$ песня и $$$q$$$ вопросов. В следующих двух строках даны две строки $$$s_0$$$ и $$$t$$$ ($$$1 \leq |s_0| \leq 100, |t| = n$$$).

Следующие $$$q$$$ строк содержат вопросы: каждая строка содержит число $$$k$$$ ($$$ 0 \leq k \leq n$$$), индекс песни сирен, и непустую строку $$$w$$$, обозначающую имя моряка. Все строки состоят из строчных английских букв. Сумма длин имен моряков не превышает $$$10^6$$$.

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

Выведите $$$q$$$ строк, $$$i$$$-я из них должна содержать остаток по модулю $$$10^9+7$$$ от числа вхождений $$$w$$$ в $$$s_k$$$.

Примеры
Входные данные
3 3
aa
bcd
2 aba
3 ca
3 aa
Выходные данные
2
2
8
Входные данные
4 5
aba
bbac
1 a
3 baca
3 ab
2 bab
4 aba
Выходные данные
4
0
14
6
28
Примечание

В первом примере песни сирен выглядят так:

  • Песня $$$0$$$: aa
  • Песня $$$1$$$: aabaa
  • Песня $$$2$$$: aabaacaabaa
  • Песня $$$3$$$: aabaacaabaadaabaacaabaa