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

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

문제

Назовем две строки 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.

힌트

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

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

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

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