编程题
### 问题描述
你是探险小队的成员,你们发现了一个藏有宝藏的洞穴。洞穴的左边有一个长度为 $n$ 的数组 $a$,右边有一个长度为 $m$ 的数组 $b$。对于 $b$ 数组中的任意一个元素 $b_i(i ∈ [1,m])$,它的价值是根据公式 $\gcd(a_1+b_i, a_2+b_i, ..., a_n+b_i)$ 计算得到的。将 $b$ 数组中所有元素的价值进行**异或**运算,得到的结果即为打开洞穴的密码。你的小队成员开始计算,但是你意识到按照正常的计算方法可能需要很长时间才能得到答案。作为队伍中最聪明的人,你需要想出一种更加高效的方法来得到密码。
### 输入格式
第一行输入两个整数 $n$ 和 $m$ ,表示数组 $a$ 的长度和数组 $b$ 长度。
第二行输入 $n$ 个整数表示数组 $a$,以空格隔开。
第三行输入 $m$ 个整数表示数组 $b$,以空格隔开。
数据保证 $1 \leq n,m \leq 2\times 10^5,$$1\leq a_i,b_i \leq 10^{9}$。
### 输出格式
输出一个整数,表示洞穴的密码。
### 样例输入
```
4 4
1 25 121 169
1 2 7 23
```
### 样例输出
```
17
```
### 说明
$b$ 数组的价值分别为 $[2,3,8,24]$ ,异或得到的结果为 $17$ 。