Description
对于一个序列 {an},你可以进行如下操作任意次:
- 选择两个相邻的数 ai,ai+1(1≤i<n),并在这两个数之间插入一个数,这个数可以是:
- ai and ai+1.
- ai or ai+1.
- ai xor ai+1.
其中 and,or,xor 代表二进制下的按位与、按位或和按位异或。
你需要使序列中不同的数的个数尽量多,求最终序列中不同的数的个数的最大值。
第一行一个正整数 n(1≤n≤5×105).
第二行 n 个正整数表示序列 {an}(0≤ai<230).
Output
仅一个正整数表示不同的数的个数。
Samples
2
2 3
4
2
3 4
4
Limitation
1s, 256MiB.