或的最大值
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

现在给你n个数a_i(2\le n\le 10^5,0\le a_i\le 10^80 \le \sum a_i \le 10^8),请你找两个互不相等且满足1\le i,j \le n的两个下标i,j,输出a_i \mid a_j的最大值。

输入描述:

输入两行。

第一行一个正整数n表示数字数量。

接下来一行n个非负整数表示每个数字。

输出描述:

输出一行一个整数表示答案。
示例1

输入

复制
4
1 2 3 4

输出

复制
7

说明

i=3,j=4,则有a_3 \mid a_4=3\mid 4 =7

也有别的方案,但是都小于等于 7
示例2

输入

复制
10
5 18 8 7 15 2 16 15 16 10

输出

复制
31