You are given numbers , and a sequence of numbers. Find the largest possible interval of consequently following elements, such that xor of these elements is not less than . I.e., more formally, find such and that
and is largest possible positive number.
It's guaranteed that for each test from the testset such an interval exists.
We remind you that xor operation is applied to numbers in binary representation, so that for each pair of bits the following is true:
0 \text{ xor } 0 = 0
0 \text{ xor } 1 = 1
1 \text{ xor } 0 = 1
1 \text{ xor } 1 = 0
The result of this operation doesn't depend on the order of operands a \text{ xor } b = b \text{ xor } a. Moreover (a \text{ xor } (a \text{ xor } b)) = b.
In Pascal this operation is represented as xor. In C/C++/Java as ^.
The first line contains (1 \le n \le 250\,000) and (0 \le x \le 10^9). The second line contains non-negative numbers not exceeding 10^9.
The first line must contain two numbers: and . In case of many solutions output the one with the smallest .
Example 1