Назовем два числа похожими, если в их двоичных представлениях одинаковое количество цифр равно \(1\). Например:
- \(2\) и \(4\) похожи (двоичные представления — \(10\) и \(100\));
- \(1337\) и \(4213\) похожи (двоичные представления — \(10100111001\) и \(1000001110101\));
- \(3\) и \(2\) не похожи (двоичные представления — \(11\) и \(10\));
- \(42\) и \(13\) похожи (двоичные представления — \(101010\) и \(1101\)).
Вам задан массив из \(n\) целых чисел \(a_1\), \(a_2\), ..., \(a_n\). Вы должны выбрать неотрицательное целое число \(x\), после чего вы получите новый массив из \(n\) чисел \(b_1\), \(b_2\), ..., \(b_n\), где \(b_i = a_i \oplus x\) (\(\oplus\) обозначает операцию побитового исключающего ИЛИ).
Можно ли получить такой массив \(b\), в котором все числа похожи друг на друга?
Выходные данные
Если нельзя выбрать такой \(x\), что все элементы в полученном массиве будут похожи друг на друга, выведите \(-1\).
Иначе выведите любое неотрицательное целое число, не превосходящее \(2^{30} - 1\), которое можно использовать как \(x\) таким образом, что все числа в полученном массиве будут похожи друг на друга.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
2 7 2
|
1
|
|
2
|
4 3 17 6 0
|
5
|
|
3
|
3 1 2 3
|
-1
|
|
4
|
3 43 12 12
|
1073709057
|