Обыкновенная задача про строки

Назовем две строки ss и tt эквивалентными, если для любой строки uu длины 22, количество вхождений uu в ss совпадает с количеством вхождением uu в tt. Таким образом, строки aaaba, abaaa и baaab попарно эквивалентны между собой (строка aa входит два раза, строка ab один раз, строка ba один раз, строка bb не входит как подстрока), а строки abb и bba — нет.

В этой задаче вам будут даны QQ строк, состоящих из символов a, b и c, для каждой из которых надо будет посчитать количество эквивалентных им непустых строк, также состоящих из символов a, b и c. Так как это количество может быть очень большим, то надо вывести его остаток при делении на 109+710^9 + 7.

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

В первой строке входных данных дано число GG — номер подзадачи, к которой относится текущий тест. Для теста из примера G=0G = 0.

На второй строке дано число qq (1q1051 \le q \le 10^5), затем следуют qq строк, состоящих из символов a, b и c. Суммарная длина строк не превышает 10610^6.

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

Требуется вывести qq целых чисел — для каждой строки необходимо вывести количество эквивалентных ей по модулю 109+710^9 + 7.

Подзадачи

баллынеобх. подзадачиограничения
0

0

-

Тесты из условия

1

11

-

строка ss не содержит символов c

2

13

1

символы a и c в строке ss не встречаются рядом

3

11

-

ni13n_i \le 13

4

10

3

L40L \le 40

5

9

3, 4

L60L \le 60

6

13

-

w100;L105w \le 100; L \le 10^5

7

33

1, 2, 3, 4, 5, 6

Нет доп. ограничений

STDINSTDOUT
0
4
abaa
abca
ccbca
bacc
3
3
2
1

Примечание

Строке abaa эквивалентны строки abaa, aaba, baab;

Строке abca эквивалентны строки abca, bcab, cabc;

Строке ccbca эквивалентны строки ccbca и cbcca;

Строке bacc эквивалентна только строка bacc.