XOR
Вам дано число x и последовательность из n чисел. Требуется найти как можно больший интервал подряд идущих элементов этой последовательности, такой что xor всех этих элементов не меньше, чем x. То есть, более формально, требуется найти такие i и k, что
a[i]
xor a[i+1]
xor ... xor a[i+k-1]
≥ x, 1 ≤ i ≤ i + k - 1 ≤ n,
а значение k максимально возможное.
Гарантируется, что такой интервал для исходной последовательности найдется. Напомним, что операция xor выполняетcя над битовым представлением целых чисел так, что для пары соответствующих бит справедливо
0 xor 0 = 0
0 xor 1 = 1
1 xor 0 = 1
1 xor 1 = 0
Результат этой операции не зависит от порядка операндов: a xor b = b xor a. Также справедливо следующее: (a xor (a xor b)) = b.
В языке программирования Паскаль эта операция обозначается как xor, в языках С/С++/Java как ^.
Входные данные
В первой строке находятся числа n (1 ≤ n ≤ 250 000) и x (0 ≤ x ≤ 10^9
). В следующей строке записаны n целых неотрицательных чисел, каждое из которых не превосходит 10^9
.
Выходные данные
Вывести два числа: значения i и k. В случае, если решений несколько, выдайте то, в котором значение i минимально.