CF677C Vanya and Label
Description
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 Format
The only line of the input contains a single word $ s $ ( $ 1
Output Format
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 $ .
Explanation/Hint
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 $