Операции с битами

Иногда нам нужно выполнять действия над парами двоичных чисел. Если у нас есть два числа 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 к следующим парам:

  • 2 (010) и 5 (101) → 7 (111)

  • 3 (011) и 4 (100) → 7 (111)

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue