B. Минимальное число шагов
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дана строка из букв «a» и «b». Мы хотим произвести над ней некоторые операции. На каждом шагу мы выбираем одну из подстрок «ab» в данной строке и заменяем ее на строку «bba». Если в строке нет подстрок «ab», то мы останавливаемся. Выведите минимальное число шагов, которое требуется нам сделать перед тем, как мы остановимся, по модулю 109 + 7.

Строка «ab» встречается как подстрока, если где-то есть буква «b» сразу после буквы «a».

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

Единственная строка содержит изначальную строку, состоящую только из букв «a» и «b», имеющую длину от 1 до 106.

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

Выведите минимальное число шагов по модулю 109 + 7.

Примеры
Входные данные
ab
Выходные данные
1
Входные данные
aab
Выходные данные
3
Примечание

Первый пример: «ab»  →  «bba».

Второй пример: «aab»  →  «abba»  →  «bbaba»  →  «bbbbaa».