4573 - 异或与乘积

小信有n个整数的序列A

他可以做若干次操作,每次任意选择两个数,把他们异或起来,之后删除这两个数,并把他们异或后的结果加入序列。在进行任意若干次操作后,会把序列中剩下的数全部乘起来。(注意,小信最多操作n一1次,在这之后序列会只剩下一个数)

小信想知道最后的结果最大是多少。

由于答案可能很大,输出对1000000007取模后的结果。

输入

第一行包含一个整数n。

第二行包含n个整数表示序列A。

输出

一个整数表示答案对1000000007取模后的结果。

样例

输入

4
1 2 1 2

输出

9

输入

2
3 3

输出

9

输入

2
1 3

输出

3

提示

2 \leq n \leq 10^5 , 1\leq ai \leq 10^9

来源

信友队

时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题