XOR
You are given numbers n, x and a sequence of n numbers. Find the largest possible interval of consequently following elements, such that "xor" of these elements is not less than x. I.e., more formally, find such i and k that
a[i]
xor a[i+1]
xor ... xor a[i+k-1]
≥ x, 1 ≤ i ≤ i + k - 1 ≤ n,
and k 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 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
The result of this operation doesn't depend on the order of operands a xor b = b xor a. Moreover (a xor (a xor b)) = b.
In Pascal this operation is represented as xor. In C/C++/Java as ^.
Input
The first line contains n (1 ≤ n ≤ 250 000) and x (0 ≤ x ≤ 10^9
). The second line contains n non-negative numbers not exceeding 10^9
.
Output
The first line must contain two numbers: i and k. In case of many solutions output the one with the smallest i.