【模板】Berlekamp–Massey 算法

题目背景

前置技能:线性递推 $\&~\rm BM$ 算法。 同时,请注意优化你的空间。保证最短递推式**唯一**。 出题人为强行二合一感到很抱歉,但是其实也是可以学习一下 $k^2 \log n$ 线性递推的——保证在 `-O2` 指令下可以过。

题目描述

给出一个数列 $P$ 从 $0$ 开始的前 $n$ 项。 求序列 $P$ 在 $\bmod~998244353$ 下的最短线性递推式,并在 $\bmod~998244353$ 下输出 $P_m$。

输入输出格式

输入格式


第一行共两个数 $n,m$ ,表示将会给出序列 $P$ 的前 $n$ 项,要求 $P_m$。 第二行 $n$ 个数,表示 $P_0,P_1,P_2,\ldots,P_{n-1}$。

输出格式


第一行输出该最短线性递推式。 第二行输出 $P_m$ 的值。

输入输出样例

输入样例 #1

4 10
1 1 2 3

输出样例 #1

1 1 
89

输入样例 #2

5 10
3 7 27 95 339

输出样例 #2

3 2
691707

说明

对于 $100 \%$ 的数据,$n < m \le {10}^9$,$1 \le n \le 10000$,保证递推式最长不超过 $5000$。