#arc084d. [arc084_d]XorShift
[arc084_d]XorShift
Problem Statement
There are non-negative integers written on a blackboard. The -th integer is .
Takahashi can perform the following two kinds of operations any number of times in any order:
- Select one integer written on the board (let this integer be ). Write on the board, without erasing the selected integer.
- Select two integers, possibly the same, written on the board (let these integers be and ). Write XOR (XOR stands for bitwise xor) on the blackboard, without erasing the selected integers.
How many different integers not exceeding can be written on the blackboard? We will also count the integers that are initially written on the board. Since the answer can be extremely large, find the count modulo .
Constraints
- All input values are integers.
- and are given in binary notation, with the most significant digit in each of them being .
Input
Input is given from Standard Input in the following format:
Output
Print the number of different integers not exceeding that can be written on the blackboard.
Sample Input 1
3 111
1111
10111
10010
Sample Output 1
4
Initially, , and are written on the blackboard. Among the integers not exceeding , four integers, , , and , can be written. For example, can be written as follows:
- Double to write .
- Take XOR of and to write .
- Double to write .
- Take XOR of and to write .
Sample Input 2
4 100100
1011
1110
110101
1010110
Sample Output 2
37
Sample Input 3
4 111001100101001
10111110
1001000110
100000101
11110000011
Sample Output 3
1843
Sample Input 4
1 111111111111111111111111111111111111111111111111111111111111111
1
Sample Output 4
466025955
Be sure to find the count modulo .