Вам даны два массива целых чисел — \(a_1, \ldots, a_n\) длины \(n\), и \(b_1, \ldots, b_m\) длины \(m\). Вы можете выбрать любой элемент \(b_j\) из массива \(b\) (\(1 \leq j \leq m\)), и для всех \(1 \leq i \leq n\) сделать \(a_i = a_i | b_j\). Вы можете сделать произвольное число таких операций.
После всех операций будет посчитано число \(x = a_1 \oplus a_2 \oplus \ldots \oplus a_n\). Найдите наименьшее и наибольшее значения \(x\), которые могли получиться после произвольного набора набора операций.
Выше \(|\) обозначает операцию побитового ИЛИ (OR), а \(\oplus\) — операцию побитового исключающего ИЛИ (XOR).
Выходные данные
На каждый набор входных данных выведите \(2\) числа — наименьшее и наибольшее возможное значение \(x\) после произвольного набора операций.
Примечание
В первом наборе входных данных при применении операции с элементом \(b_1 = 1\) массив \(a\) станет равен \([1, 1]\), и \(x\) будет равен \(0\). Если не применять никаких операций, то \(x = 1\).
Во втором наборе входных данных если не применять никаких операций, то \(x = 2\). Если применить операцию с \(b_1 = 1\), то \(a = [1, 1, 3]\), и \(x = 3\).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
2 2 3 0 1 1 2 3 3 1 1 1 2 1
|
0 1
2 3
|