Иногда нам нужно выполнять действия над парами двоичных чисел. Если у нас есть два числа a и b, мы можем захотеть оставить установленные биты только там, где у a и b оба равны 1 (соответствует операции AND). Или же, наоборот, мы можем захотеть установить биты в единицу в тех позициях, где хотя бы одно из чисел a или b имеет бит 1 (соответствует операции OR).
a
b (OR (ИЛИ))
b
a
a ^ b (XOR (исключающее ИЛИ))
двоичное и десятичное представления
двоичное и десятичное представления
1 если и у , и у бит равен 1, иначе 0
1 если у или (или у обоих) бит равен 1, иначе 0
1 если биты различаются, иначе 0
110 (6)
101 (5)
100 (4)
111 (7)
011 (3)
100111 (39)
010100 (20)
100 (4)
110111 (55)
110011 (51)
Задача
Дано n целых чисел. Нужно найти среди них такие 2 числа, чтобы после применения операции OR результат стал максимально возможным.
Input
Первая строка содержит одно целое число n (1 ≤ n ≤ 1000).
Во второй строке задано n целых чисел (1 ≤ ≤ ), разделённых пробелами.
Output
Выведите максимально возможное значение, которое можно получить, применяя операцию OR к двум из данных чисел.
Examples
Ввод
Вывод
5 1 2 3 4 5
7
Explanation
Мы можем получить 7, если применить OR к следующим парам: