#L2685. 「BalticOI 2013」Brunhilda 的生日 Brunhilda’s Birthday

「BalticOI 2013」Brunhilda 的生日 Brunhilda’s Birthday

2685. 「BalticOI 2013」Brunhilda 的生日 Brunhilda’s Birthday

题目描述

给定 mm 个素数和 QQ 个询问。每个询问有 nn 个人,每次操作可以任意选择其中的一个素数 pp(素数可以重复使用),然后去掉剩余人数 modp\bmod p 个人。对于每个询问,我们想知道,至少需要多少步操作才能去掉所有人。

输入格式

第一行:素数个数 mm 和询问个数 QQ1m1000001 \le m \le 100\,000, 1Q1000001 \le Q \le 100\,000

第二行:mm 个素数 pip_i2pi100000002 \le p_i \le 10\,000\,000

下面 QQ 行:nn1n100000001 \le n \le 10\,000\,000

输出格式

QQ 行答案。如果无解,输出 oo

样例

输入

2 2
2 3
5
6

输出

3
oo

解释:

  • n=5n=5:可以用 p=3p=3 去掉 5mod3=25 \bmod 3 = 2 人,剩下 3 人;再用 p=2p=2 去掉 3mod2=13 \bmod 2 = 1 人,剩下 2 人;再用 p=2p=2 去掉 2mod2=02 \bmod 2 = 0 人,剩下 2 人(这里有问题,应该是去掉后剩下的人数)。实际上正确操作需要 3 步。
  • n=6n=6:无解,因为 66 不能被任何 pip_i 整除,且 6modpi6 \bmod p_i 无法达到 0。

数据范围与提示

对于 20%20\% 的测试数据,m,nj,Q10000m, n_j, Q \le 10\,000

对于另外 20%20\% 的测试数据,Q=1Q = 1

对于所有数据,1m1000001 \le m \le 100\,000, 1Q1000001 \le Q \le 100\,000, 2pi100000002 \le p_i \le 10\,000\,000, 1nj100000001 \le n_j \le 10\,000\,000