题目描述
给定一个长度为 n 的非负整数序列 {an},你可以进行 k 次操作,每次操作你选择两个相邻的数,把它们合并成它们的按位或。
形式化地,一次操作中,你选择一个下标 i(1≤i<n),然后把原序列变成 {a1,a2,⋯,aiorai+1,ai+2,⋯,an}。
求 k 次操作后所有数按位与的最大值。
输入格式
第一行包含两个正整数 n,k。
第二行包含 n 个非负整数,其中第 i 个非负整数为 ai。
输出格式
输出一行,包含一个正整数,代表答案。
提示
【样例解释】
一种合法的方案:
- 第一次操作,选择第一个数和第二个数合并,序列变为 {3,2,3,1}。
- 第二次操作,选择第三个数和第四个数合并,序列变为 {3,2,3}。
最终所有数的按位与为 2。可以证明不存在更优的方案。
【数据范围】
- 对于 25% 的数据,n≤20。
- 对于另外 25% 的数据,k=n−2。
对于所有数据,保证 1≤k<n≤2×105,0≤ai<230。