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

Ваня шёл по улице и увидел надпись «Hide&Seek». Поскольку Ваня — программист, ему сразу пришла идея воспользоваться операцией & (побитовое И) для этих двух слов в 64-ричной системе счисления (0..9A..Za..z-_) и получить новое слово. Теперь Ваня придумал некоторую строку s и задался вопросом, сколько существует различных пар слов длины |s| (длина строки s), побитовое И которых равно данному слову s? Поскольку ответ может быть очень большим, Ваня просит вас вычислить его по модулю 109 + 7.

Для перевода букв слова в 64-ричную систему счисления Ваня использует следующее соответствие знаков и чисел:

  • цифрам от «0» до «9» соответствуют числа от 0 до 9;
  • буквам от «A» до «Z» соответствуют числа от 10 до 35;
  • буквам от «a» до «z» соответствуют числа от 36 до 61;
  • символу «-» соответствует число 62;
  • символу «_» соответствует число 63.
Входные данные

В единственной строке входных данных записано слово s (1 ≤ |s| ≤ 100 000), состоящее только из цифр, больших и маленьких букв английского алфавита, символов «-» и «_».

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

Выведите единственное целое число — количество возможных пар слов, побитовое И которых равняется строке s, по модулю 109 + 7.

Примеры
Входные данные
z
Выходные данные
3
Входные данные
V_V
Выходные данные
9
Входные данные
Codeforces
Выходные данные
130653412
Примечание

Для подробного описания функции побитовое И можно посмотреть соответствующую статью в Википедии.

В первом примере возможны 3 варианта:

  1. z&_ = 61&63 = 61 = z
  2. _&z = 63&61 = 61 = z
  3. z&z = 61&61 = 61 = z