给定一个包含 $N$ 个整数的数组 $A = [A_1, A_2, \dots, A_N]$。
如果数组 $A$ 可以被重排,使得对于每一对满足 $1 \le i < j \le N$ 的下标 $(i, j)$,重排后的数组都满足 $A_i \oplus p \le A_j \oplus q$ 且 $A_i \oplus q \le A_j \oplus p$,则称数组 $A$ 是 $(p, q)$-可异或排序的。其中 $\oplus$ 表示按位异或运算。
给定另一个长度为 $M$ 的数组 $X = [X_1, X_2, \dots, X_M]$。请计算满足 $1 \le u < v \le M$ 且数组 $A$ 是 $(X_u, X_v)$-可异或排序的数对 $(u, v)$ 的数量。
输入格式
第一行包含两个整数 $N$ 和 $M$ ($2 \le N, M \le 200\,000$)。 第二行包含 $N$ 个整数 $A_i$ ($0 \le A_i < 2^{30}$)。 第三行包含 $M$ 个整数 $X_u$ ($0 \le X_u < 2^{30}$)。
输出格式
输出一个整数,表示满足数组 $A$ 是 $(X_u, X_v)$-可异或排序的数对 $(u, v)$ 的数量,其中 $1 \le u < v \le M$。
样例
样例输入 1
3 4 0 3 0 1 2 1 1
样例输出 1
3
说明 1
通过将数组 $A$ 重排为 $[0, 0, 3]$,数组 $A$ 是 $(1, 1)$-可异或排序的。
样例输入 2
5 2 0 7 13 22 24 12 10
样例输出 2
1
说明 2
通过将数组 $A$ 重排为 $[13, 0, 7, 24, 22]$,数组 $A$ 是 $(12, 10)$-可异或排序的。
样例输入 3
3 3 0 0 0 1 2 3
样例输出 3
0