众所周知,原子可以处于不同的能级(或“能量状态”)。通常,当原子从高能级跃迁到低能级时,会发射一个光子,其能量等于这两个能级之间的能量差。吸收光子是相反的过程。如果一个能量等于原子两个能级之差的光子经过,它可能会被吸收,其能量会将原子提升到更高的能级。对于大多数元素,原子可以通过发射或吸收单个光子在任意两个能级之间直接跃迁。
科学家们对最近发现的一种新元素感到困惑。对于某些特定的能级对,该元素的原子可以在它们之间直接跃迁(发射或吸收且仅发射或吸收一个光子),但对于其他一些能级对,原子则无法直接跃迁。
通常情况下,当原子在能级之间依次跃迁时,会发生一系列事件(发射或吸收光子)。例如,当从能级 $E_{i_1}$ 跃迁到 $E_{i_t}$ 时,原子遵循以下序列:
$$E_{i_1}, E_{i_2}, E_{i_3}, ..., E_{i_k}, ..., E_{i_t}$$
其中 $E_{i_k}$ ($1 \leq k \leq t$) 代表某个特定的能级。在从 $E_{i_k}$ 跃迁到 $E_{i_{k+1}}$ 的过程中,会发射或吸收且仅发射或吸收一个光子。
原子可以处于任何能级并跃迁到其他能级。但正如上面提到的,对于某些能级对,这种特殊的原子无法直接跃迁。更重要的是,当其能级从一个变为另一个时,例如从 $E_{j_1}$ 到 $E_{j_w}$,它只能遵循唯一的序列 $E_{j_1}, E_{j_2}, E_{j_3}, ..., E_{j_w}$。最有趣的是,当它从 $E_{j_w}$ 跃迁回 $E_{j_1}$ 时,它只能遵循另一个唯一的序列 $E_{j_w}, ...,E_{j_3}, E_{j_2}, E_{j_1}$。你会发现这正是前一个序列的逆序!没错!这不是很特别吗?
现在,科学家们需要你的帮助。在实验中,这种新元素的一些原子将被放入一个容器中。如果任意两个原子满足以下条件之一,它们将被视为“危险原子”:
- 它们处于相同的能级。
- 它们处于不同的能级,但如果其中一个原子发射或吸收一个光子,它们将处于相同的能级。
你必须确保容器中没有危险原子。容器中原子的总能量越高,实验就越容易成功。
现在,科学家们已经告诉你该元素原子可以发射或吸收的所有光子,以及所有能级的能量。他们要求你计算容器中原子所能达到的最高总能量。
输入格式
输入包含多组测试数据。每组数据的第一行包含两个整数 $N$ 和 $M$ ($0 < N, M \leq 200$),分别表示能级的数量和该原子可以发射或吸收的不同光子的数量。接下来的 $N + M$ 行,每行包含一个正整数。这 $N+M$ 个正整数均不超过 $1\,000\,000$。前 $N$ 个不同的整数是 $N$ 个不同能级的能量,按升序排列。后 $M$ 个整数对应 $M$ 种不同光子的能量,这些光子可以被该元素的原子发射或吸收。如果任意两个能级的能量差等于 $M$ 种光子中某一个的能量,则原子可以在这两个能级之间直接跃迁。
数据组之间没有空行。最后一组测试数据后跟一行包含两个零的输入。
输出格式
对于每组测试数据,输出一行,包含一个整数,表示容器中原子所能达到的最高总能量。任意两组输出之间不应有空行。
样例
输入 1
3 1 2 4 6 2 0 0
输出 1
8