题目描述
有一个长度为n的序列a1,...,an。
如果序列的长度大于1,那么你就能进行操作,每次操作可以选择两个相邻的数ai,ai+1合并,得到−一个
新的数ai田ai+1("田"表示异或),每次操作都会使序列的长度减少1。 例如对将序列[8,3,5,7,1]中的第2
个和第3个数进行合并,会得到新序列[8,6,7,1],并可以进行下一轮操作。
你需要进行若干次操作(可能是0次),使得最终序列任意子区间的异或和不为0。子区间的定义为连续
的一段数[al,a1+1,...,ar](l≤r)。求满足条件的最终序列的最长长度。
输入格式
第一行一个正整数n,表示序列长度。
第二行n个正整数a1,...,an,表示序列。
输出格式
一个整数,满足条件的最终序列的最长长度。如果不存在这样的序列则输出"−1" (不含引号)。
样例
输入样例
4
5 5 7 2
输出样例
2
提示
一种方案是先选择a1,a2合并,得到[0,7,2],再选择前两个数合并,得到[7,2]。不存在方案使得最终序列长度为3或4。
对于所有测试点,1≤n≤105,0≤ai≤109。