ビット演算

バイナリ形式で表された2つの数値に対して演算を行いたい場面があります。たとえば ab という数があるとき、両方の数でビットが 1 になっている部分以外をすべて 0 にしたい場合(これは AND 演算に相当します)や、どちらかのビットが 1 になっている部分をすべて 1 にしたい場合(これは OR 演算に相当します)などが考えられます。

a

b (OR)

b

a

a ^ b (XOR)
exclusive OR

2進数と10進数の表記

2進数と10進数の表記

(両方のビットが 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)

Challenge

与えられた n 個の整数のうち、2 つを選んで OR 演算を行ったときに得られる値が最大になる組み合わせを求めてください。

Input

最初の行に整数 n (1 ≤ n ≤ 1000) が与えられます。

次の行に、n 個の整数 (1 ≤ ) が空白区切りで与えられます。

Output

選んだ 2 つの値に OR 演算を施した結果の最大値を出力してください。

Examples

入力

出力

5
1 2 3 4 5

7

Explanation

たとえば、次のような組み合わせで 7 を得ることができます:

  • 2 (010) と 5 (101) を OR → 7 (111)

  • 3 (011) と 4 (100) を OR → 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