Назовем две строки и эквивалентными, если для любой строки длины , количество вхождений в совпадает с количеством вхождением в . Таким образом, строки aaaba
, abaaa
и baaab
попарно эквивалентны между собой (строка aa
входит два раза, строка ab
один раз, строка ba
один раз, строка bb
не входит как подстрока), а строки abb
и bba
— нет.
В этой задаче вам будут даны строк, состоящих из символов a
, b
и c
, для каждой из которых надо будет посчитать количество эквивалентных им непустых строк, также состоящих из символов a
, b
и c
. Так как это количество может быть очень большим, то надо вывести его
остаток при делении на .
Входные данные
В первой строке входных данных дано число — номер подзадачи, к которой относится текущий тест. Для теста из примера .
На второй строке дано число (), затем следуют строк, состоящих из символов a
, b
и c
. Суммарная длина строк не превышает .
Выходные данные
Требуется вывести целых чисел — для каждой строки необходимо вывести количество эквивалентных ей по модулю .
Подзадачи
№ | баллы | необх. подзадачи | ограничения |
0 | 0 | - | Тесты из условия |
1 | 11 | - | строка не содержит символов |
2 | 13 | 1 | символы |
3 | 11 | - | |
4 | 10 | 3 | |
5 | 9 | 3, 4 | |
6 | 13 | - | |
7 | 33 | 1, 2, 3, 4, 5, 6 | Нет доп. ограничений |
STDIN | STDOUT |
0 4 abaa abca ccbca bacc | 3 3 2 1 |
Примечание
Строке abaa
эквивалентны строки abaa
, aaba
, baab
;
Строке abca
эквивалентны строки abca
, bcab
, cabc
;
Строке ccbca
эквивалентны строки ccbca
и cbcca
;
Строке bacc
эквивалентна только строка bacc
.