AT_agc071_a [AGC071A] XOR Cross Over

Description

非負整数列が書かれている黒板があります。はじめ、黒板には長さ $ N $ の非負整数列 $ A=(A_1,A_2,\dots,A_N) $ のみが書かれています。 黒板に書かれている非負整数列の長さがすべて $ 1 $ になるまで以下の操作を行い続けます。 - 黒板に書かれている非負整数列のうち、長さ $ 2 $ 以上の非負整数列を $ 1 $ つ選び、黒板から消去する。選んだ非負整数列を $ B=(B_1,B_2,\dots,B_n) $ とする。続けて $ 1 \leq k < n $ を満たす整数 $ k $ を $ 1 $ つ選び、 $ X = B_1 \oplus B_2 \oplus \dots \oplus B_k,\ Y=B_{k+1} \oplus B_{k+2} \oplus \dots \oplus B_n $ とする。最後に黒板に $ 2 $ つの非負整数列 $ (B_1 \oplus Y, B_2 \oplus Y,\dots,B_k \oplus Y),\ (B_{k+1} \oplus X,\ B_{k+2} \oplus X,\dots,B_n \oplus X) $ を書き込む ただしここで、 $ \oplus $ はビット単位 $ \mathrm{XOR} $ 演算を表します。 一連の操作を行った後、黒板に書かれている $ N $ 個の長さ $ 1 $ の非負整数列を $ (C_1),(C_2),\dots,(C_N) $ としたとき、 $ \sum_{i=1}^{N}C_i $ として考えられる値の最小値を求めてください。 ビット単位 $ \mathrm{XOR} $ 演算とは 非負整数 $ A, B $ のビット単位 $ \mathrm{XOR} $ 、 $ A \oplus B $ は、以下のように定義されます。 - $ A \oplus B $ を二進表記した際の $ 2^k $ ( $ k \geq 0 $ ) の位の数は、 $ A, B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。 例えば、 $ 3 \oplus 5 = 6 $ となります (二進表記すると: $ 011 \oplus 101 = 110 $ )。 一般に $ k $ 個の非負整数 $ p_1, p_2, p_3, \dots, p_k $ のビット単位 $ \mathrm{XOR} $ は $ (\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k) $ と定義され、これは $ p_1, p_2, p_3, \dots, p_k $ の順番によらないことが証明できます。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 はじめ、黒板には $ (1,3,4,5) $ のみが書かれています。ここから、以下の手順で操作を行います。 1. $ (1,3,4,5) $ を黒板から消去し、 $ k=2 $ とする。 $ X=1 \oplus 3 = 2, Y= 4 \oplus 5 = 1 $ となり、黒板には新たに $ 2 $ つの非負整数列 $ (1 \oplus 1, 3 \oplus 1)=(0,2), (4 \oplus 2, 5 \oplus 2)=(6,7) $ が書き込まれる。 2. $ (0,2) $ を黒板から消去し、 $ k=1 $ とする。黒板には新たに $ 2 $ つの非負整数列 $ (2),(2) $ が書き込まれる。 3. $ (6,7) $ を黒板から消去し、 $ k=1 $ とする。黒板には新たに $ 2 $ つの非負整数列 $ (1),(1) $ が書き込まれる。 以上の手順により、黒板に書かれている非負整数列はいずれも長さ $ 1 $ の非負整数列 $ (2),(2),(1),(1) $ の $ 4 $ つになり、値の合計は $ 2+2+1+1=6 $ となります。 ### Constraints - $ 1 \leq N \leq 500 $ - $ 0 \leq A_i < 2^{40} $ - 入力される値はすべて整数