Codeforces Round 597 (Div. 2) |
---|
Закончено |
Констанция — самая умная девушка в своей деревне, но вот зрением она не блещет.
Однажды она изобрела невероятный аппарат! Когда вы произносите букву, аппарат записывает ее на лист бумаги. Например, если вы произнесете буквы 'c', 'o', 'd' и 'e' в таком порядке, то аппарат запишет «code» на бумаге. Благодаря этому изобретению, она наконец-то может писать письма, не надевая очки.
Однако ее глупый друг Акко решил над ней подшутить. Акко испортил аппарат так, что если произнести 'w', то будет записано «uu» вместо «w», и если произнести 'm', то будет записано «nn» вместо «m». Так как зрение у Констанции довольно плохое, она не заметила, что Акко сделал.
Остальные буквы работают так же, как и прежде — если произнести любую букву, кроме 'w' и 'm', то аппарат просто запишет ее на бумаге.
На следующий день я получил письмо. Я его не смог разобрать, так что я решил, что это либо какая-то тарабарщина от Акко, либо то, что записала Констанция своим аппаратом. Но так как мне известно, что совершил Акко, мне захотелось перечислить все возможные строки, которые могли получиться в результате записи аппаратом Констанции, чтобы посмотреть, могло ли это быть посланным сообщением.
Таким образом, мне хочется узнать, сколько понадобится бумаги для этой затеи. В этом мне не помешает твоя помощь. Подскажи мне количество строк, которые аппарат Констанции мог превратить в полученное мной сообщение.
Так как данное число могло получиться довольно большим, сообщи мне остаток от его деления на $$$10^9+7$$$.
Если не существует ни одной такой строки, что аппарат Констанции мог превратить их в полученное мной сообщение, то выведите $$$0$$$.
В единственной строке содержится строка $$$s$$$ ($$$1 \leq |s| \leq 10^5$$$) — полученное сообщение. $$$s$$$ содержит только строчные латинские буквы.
Выведите одно целое число — количество строк, которые аппарат Констанции мог превратить в полученное мной сообщение $$$s$$$, по модулю $$$10^9+7$$$.
ouuokarinn
4
banana
1
nnn
3
amanda
0
В первом примере возможные строки: «ouuokarinn», «ouuokarim», «owokarim» и «owokarinn».
Во втором примере есть только одна строка: «banana».
В третьем примере возможные строки: «nm», «mn» и «nnn».
В последнем примере нет ни одной строки, которую аппарат бы вывел как «amanda», так как аппарат не может напечатать 'm'.
Название |
---|