单点时限: 3.0 sec
内存限制: 512 MB
Cuber QQ 最近迷上了洋葱圈。
Cuber QQ 现在有 $n$ 个不同的洋葱和 $m$ 个不同的盘子。每次 Cuber QQ 可以选择一些洋葱串成一个洋葱圈放在某个盘子上。但是,有强迫症的 Cuber QQ 规定第 $i$ ($1 \le i \le n$) 个盘子上面只能放长度为 $a_{i}$ 的倍数的洋葱圈。Cuber QQ 需要保证每个洋葱都在其中一个盘子上,一盘子上可以放任意多个洋葱圈,也可以为空。
Cuber QQ 想知道有多少种不同的方案数。
如果两个洋葱圈包含了不同的洋葱,或者包含相同的洋葱但是无法通过旋转使得两个洋葱圈完全一致,则认为两个洋葱圈是不同的。
如果某个盘子在两个方案中放置的洋葱圈不同,则认为两个方案是不同的,同个盘子上的洋葱圈是无序的。
输入数据第一行两个整数 $n,m$ ($1\le n,m \le 2\cdot 10^5$)。
接下的 $m$ 行,每行一个整数,$a_i$ ($1\le a_i\le n$) ,表示第 $i$ 个盘子上只能放长度为 $a_i$ 的倍数的洋葱圈。
输出包含一个整数,表示答案。由于答案可能很大,所以输出模 $998244353$ 的结果。
1 1 1
1
3 3 3 3 2
4
盘子上的洋葱圈可以旋转,不能翻转。
以下两个洋葱圈是不同的
1 1
/ \ / \
2 - 3 3 - 2
以下两个洋葱圈是相同的
3 1
/ \ / \
2 - 1 3 - 2