While walking down the street Vanya saw a label "Hide&Seek". Because he is a programmer, he used $&$ as a bitwise AND for these two words represented as a integers in base $64$ and got new word. Now Vanya thinks of some string $*s*$ and wants to know the number of pairs of words of length $|*s*|$ (length of $*s*$), such that their bitwise AND is equal to $*s*$. As this number can be large, output it modulo $10^{9} + 7$.
To represent the string as a number in numeral system with base $64$ Vanya uses the following rules:
- digits from '
0' to '9' correspond to integers from$0$to$9$; - letters from '
A' to 'Z' correspond to integers from$10$to$35$; - letters from '
a' to 'z' correspond to integers from$36$to$61$; - letter '
-' correspond to integer$62$; - letter '
_' correspond to integer$63$.
Input
The only line of the input contains a single word $*s*$ ($1 ≤ |*s*| ≤ 100 000$), consisting of digits, lowercase and uppercase English letters, characters '-' and '_'.
Output
Print a single integer — the number of possible pairs of words, such that their bitwise AND is equal to string $*s*$ modulo $10^{9} + 7$.
Note
For a detailed definition of bitwise AND we recommend to take a look in the corresponding article in Wikipedia.
In the first sample, there are $3$ possible solutions:
$*z*&_ = 61&63 = 61 = *z*$$_&*z* = 63&61 = 61 = *z*$$*z*&*z* = 61&61 = 61 = *z*$
样例
z
3
V_V
9
Codeforces
130653412
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。