Codeforces Round 355 (Div. 2)
C
Vanya and Label
Codeforces
1500
原题
← BD →
翻译中…

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:

翻译中…
  1. $*z*&_ = 61&63 = 61 = *z*$
  2. $_&*z* = 63&61 = 61 = *z*$
  3. $*z*&*z* = 61&61 = 61 = *z*$
翻译中…

样例

Input #1
z
Output #1
3
InputCopy OutputCopy
Input #2
V_V
Output #2
9
InputCopy OutputCopy
Input #3
Codeforces
Output #3
130653412
InputCopy OutputCopy
题目信息
题号
677C
时间限制
1 s
内存限制
256 MB
标签
位运算
组合数学
模拟
字符串

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。