题目背景
Update:
时限扩大到 3 秒。
题目描述
小 Z 送了你一个数列,具体的,有 a1=1,a2=2,ai=2ai−1+kai−2(3≤i≤n),其中 n 是数列的长度,k 是她设定的一个正整数参数。
小 Z 告诉你一个秘密,这个数列是她精心挑选的,有着一种奇妙的性质 "Prime-smooth"—— 即对于 n 以内的任何一个质数 p,满足 p∣ap(∣ 是整除记号)。
你很好奇是不是真的有这回事,于是你写了一个质数发生器,进行了长达三天三夜的尝试,终于发现了几个反例:有 m 个质数 pi 竟然不满足小 Z 所说的性质!
由于你已经随机了很久,你相信别的质数 一定满足 性质。
为了表明你和小 Z 心有灵犀,你现在想猜出小 Z 当时设定的参数 k,由于答案很大,你只需要求出最小的 k 对一个质数 c 取模即可。
输入格式
第一行三个非负整数 n,m,c,它们与题面中含义相同。
接下来 m 行,每行一个正整数 i,表示对于从小到大数第 i 个质数 pi,不满足 pi∣api。我们保证这个质数 pi≤n。注意:不保证这 m 个数两两不同。
输出格式
一行一个整数,为最小的 k 对 c 取模后的值。
特别的,如果出现无解的情况,输出 −1。
10 1 998244353
3
20
40 2 1018429441
1
4
-1
提示
【样例 1 解释】
注意第 3 个质数是 5。
当 k=20 时,a2=2,a3=24,a7=19264 均符合 p∣ap,并且 a5=656 符合 p∤ap。
【数据范围】
10≤n≤3×108。
n<c<230,c=a⋅2d+1(d≥18),保证 c 是质数。
0≤m≤20。
| 子任务编号 |
n≤ |
m≤ |
特殊性质 |
分值 |
| 1 |
106 |
20 |
|
10 |
| 2 |
5×107 |
20 |
| 3 |
2×108 |
0 |
10 |
| 4 |
6 |
| 5 |
3×108 |
0 |
c=998244353 |
20 |
| 6 |
|
| 7 |
20 |
10 |