3.生成树

3.生成树

Description

给定 n 个点,第i个点有一个非负点权 ai。
这 n个点连成了一张无向完全图,其中第i个点和第j个点连的边程度为 ai^aj,^是二进制运算中的按位异或运算。在C++中,你可以直接用 a^b 来得到 a 和 b 按位异或运算的结果。

现在你需要求出这张无向完全图的最小生成树。

Format

Input

输入第一行一个正整数 n,表示点数。

接下来一行 n 个非负整数 ai,表示n 个点的权值。

Output

输出所求的最小生成树的权值。

Sample 1

Input

5
1 2 3 4 5

Output

8

Sample 2

Input

4
1 2 3 4

Output

8

Limitation

2s, 512MiB for each test case.