编程题
### 问题描述
安安有一个包含 $n$ 个正整数的数列 $A$。他想将这个数列分成 $k$ 个部分,每个部分的值是该部分的数的异或和。然而,他对每个部分都有一个要求,即第 $i$ 个部分的值必须大于或等于 $s_i$。
现在,安安想知道,如果满足这些要求,那么所有部分的值的和最大可以是多少?请你帮助安安解决这个问题。
异或和:所有部分的和值异或起来,例如 $\lbrace a_1,a_2,a_3\rbrace$ 的异或和为 $XorSum=a_1 \otimes a_2 \otimes a_3$。
### 输入格式
第一行包含两个整数 $n$ 和 $k$,表示数列 $A$ 的长度和要分成的部分数量。
第二行包含 $n$ 个整数,表示数列 $A$ 的元素。
第三行包含 $k$ 个整数,表示每个部分的最小值 $s_i$。
### 输出格式
输出一个整数,表示在满足要求情况下分段的最大和值。
### 样例输入
```
4 2
7 2 5 5
6 2
```
### 样例输出
```
9
```
### 说明
我们分为 $\lbrace 7\rbrace,\lbrace 2,5,5\rbrace$。
结果为 $7 + 2 = 9$。符合每段的要求,并且和值最大。
### 评测数据范围
$1 \le k \le n \le 200, 1 \le s_i, a_i \le 10^9$。