#ARC084D. [ARC084F] XorShift
[ARC084F] XorShift
Score : points
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.
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 .
Be sure to find the count modulo .