#abc281f. [abc281_f]Xor Minimization

[abc281_f]Xor Minimization

問題文

非負整数列 A=(a1,ldots,aN)A=(a_1,\\ldots,a_N) が与えられます。

AA に対して次の操作をちょうど 11 回行います。

  • 非負整数 xx を選ぶ。そして、i=1,ldots,Ni=1,\\ldots,N すべてに対し、aia_i の値を「aia_ixx のビット単位 xor」に置き換える。

操作後の AA に含まれる値の最大値を MM とします。MM の最小値を求めてください。

ビット単位 xor とは 非負整数 A,BA, B のビット単位 xor 、AoplusBA \\oplus B は、以下のように定義されます。

  • AoplusBA \\oplus B を二進表記した際の 2k2^k (kgeq0k \\geq 0) の位の数は、A,BA, B を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、3oplus5=63 \\oplus 5 = 6 となります (二進表記すると: 011oplus101=110011 \\oplus 101 = 110)。

制約

  • 1leqNleq1.5times1051 \\leq N \\leq 1.5 \\times 10^5
  • 0leqailt2300 \\leq a_i \\lt 2^{30}
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN a1a_1 ldots\\ldots aNa_N

出力

答えを出力せよ。


入力例 1

3
12 18 11

出力例 1

16

x=2x=2 として操作をすると、操作後の数列は $(12 \\oplus 2,18 \\oplus 2, 11 \\oplus 2) = (14,16,9)$ となり、最大値 MM1616 となります。
MM1616 より小さくすることは出来ないため、この値が答えです。


入力例 2

10
0 0 0 0 0 0 0 0 0 0

出力例 2

0

入力例 3

5
324097321 555675086 304655177 991244276 9980291

出力例 3

805306368