#CF2045J. 可排序数组

可排序数组

J. 可排序数组
每个测试点时间限制:11
每个测试点内存限制:10241024 兆字节

给定一个包含 NN 个整数的数组 AA[A1,A2,,AN][A_1, A_2, \dots, A_N]

称数组 AA(p,q)(p,q)-可排序的,如果存在一种对 AA 的重排,使得重排后对于所有满足 1i<jN1 \le i < j \le N 的数对 (i,j)(i,j),以下两个条件均成立:

AipAjqA_i \oplus p \le A_j \oplus q AiqAjpA_i \oplus q \le A_j \oplus p

其中 \oplus 表示按位异或。

另给定一个长度为 MM 的数组 XX[X1,X2,,XM][X_1, X_2, \dots, X_M]
计算满足 1u<vM1 \le u < v \le M 且数组 AA(Xu,Xv)(X_u, X_v)-可排序的数对 (u,v)(u,v) 的个数。

输入
第一行包含两个整数 NNMM2N,M2000002 \le N, M \le 200000)。
第二行包含 NN 个整数 AiA_i0Ai<2300 \le A_i < 2^{30})。
第三行包含 MM 个整数 XuX_u0Xu<2300 \le X_u < 2^{30})。

输出
输出一个整数,表示满足条件的数对 (u,v)(u,v) 的个数。

样例

输入

3 4
0 3 0
1 2 1 1

输出

3

输入

5 2
0 7 13 22 24
12 10

输出

1

输入

3 3
0 0 0
1 2 3

输出

0

样例解释

对于样例 #1:
数组 AA(1,1)(1,1)-可排序的,可以通过重排 AA[0,0,3][0,0,3] 实现。

对于样例 #2:
数组 AA(12,10)(12,10)-可排序的,可以通过重排 AA[13,0,7,24,22][13,0,7,24,22] 实现。