#abc197c. [abc197_c]ORXOR

[abc197_c]ORXOR

問題文

長さ NN の数列 AA が与えられます。
この数列を、11 つ以上の空でない連続した区間に分けます。
その後、分けた各区間で、区間内の数のビット単位 mathrmOR\\mathrm{OR} を計算します。
こうして得られた全ての値のビット単位 mathrmXOR\\mathrm{XOR} として考えられる最小値を求めてください。

ビット単位 mathrmOR\\mathrm{OR} 演算とは

整数 A,BA, B のビット単位 mathrmOR\\mathrm{OR}AmathrmORBA\\ \\mathrm{OR}\\ B は以下のように定義されます。

  • AmathrmORBA\\ \\mathrm{OR}\\ B を二進表記した際の 2k2^k (kgeq0k \\geq 0) の位の数は、A,BA, B を二進表記した際の 2k2^k の位の数のうち少なくとも片方が 11 であれば 11、そうでなければ 00 である。

例えば、3mathrmOR5=73\\ \\mathrm{OR}\\ 5 = 7 となります (二進表記すると: 011mathrmOR101=111011\\ \\mathrm{OR}\\ 101 = 111)。
一般に kk 個の整数 p1,p2,p3,dots,pkp_1, p_2, p_3, \\dots, p_k のビット単位 mathrmOR\\mathrm{OR} は $(\\dots ((p_1\\ \\mathrm{OR}\\ p_2)\\ \\mathrm{OR}\\ p_3)\\ \\mathrm{OR}\\ \\dots\\ \\mathrm{OR}\\ p_k)$ と定義され、これは p1,p2,p3,dotspkp_1, p_2, p_3, \\dots p_k の順番によらないことが証明できます。

ビット単位 mathrmXOR\\mathrm{XOR} 演算とは

整数 A,BA, B のビット単位 mathrmXOR\\mathrm{XOR}AmathrmXORBA\\ \\mathrm{XOR}\\ B は、以下のように定義されます。

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

例えば、3mathrmXOR5=63\\ \\mathrm{XOR}\\ 5 = 6 となります (二進表記すると: 011mathrmXOR101=110011\\ \\mathrm{XOR}\\ 101 = 110)。
一般に kk 個以上の整数 p1,p2,p3,dots,pkp_1, p_2, p_3, \\dots, p_k のビット単位 mathrmXOR\\mathrm{XOR} は $(\\dots ((p_1\\ \\mathrm{XOR}\\ p_2)\\ \\mathrm{XOR}\\ p_3)\\ \\mathrm{XOR}\\ \\dots\\ \\mathrm{XOR}\\ p_k)$ と定義され、これは p1,p2,p3,dotspkp_1, p_2, p_3, \\dots p_k の順番によらないことが証明できます。

制約

  • 1leNle201 \\le N \\le 20
  • 0leAilt2300 \\le A_i \\lt 2^{30}
  • 入力に含まれる値は全て整数である

入力

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

NN A1A_1 A2A_2 A3A_3 dots\\dots ANA_N

出力

答えを出力せよ。


入力例 1

3
1 5 7

出力例 1

2

\[1, 5, 7\]\[1, 5\]\[7\]22 つの区間に分けると、それぞれの区間内の数のビット単位 mathrmOR\\mathrm{OR}5,75, 7 となり、その mathrmXOR\\mathrm{XOR}22 です。
これより小さくすることはできないので、22 を出力します。


入力例 2

3
10 10 10

出力例 2

0

\[10\]\[10, 10\] に分けるとよいです。


入力例 3

4
1 3 3 1

出力例 3

0

\[1, 3\]\[3, 1\] に分けるとよいです。