小A的多项式
题号:NC22734
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小A有一个在模998244353意义下的n次多项式F(x),保证n次项系数为1,常数项系数不为0.
小A想知道多项式的根,因此它把多项式写成了这个样子。

其中R(x)=0在模意义下不存在解。
但是小A换固态硬盘的时候不小心把这些根弄丢了,现在他手里只有这个多项式。
小A希望你能够帮他找到这些根,但是对于他而言,只有那些拥有二次剩余的根才对他有用。
而且对于一个相同的根,小A只需要k个就够用了。
假设所有满足条件的根为,并且他们重数分别为
那么小A希望你能够输出一个多项式
直接输出这个多项式的系数即可。

输入描述:

第一行两个正整数个n,k,含义如题目所示。
接下来一行n+1个自然数

第i个自然数表示 F(x) 第i-1次项的系数。

k<=n<=3000,fi<998244353

输出描述:

第一行一个m,代表多项式G(x)的最高次数,请保证第m项系数为1
接下来m+1个自然数,
第i个自然数代表G(x)第i-1次项的系数。
示例1

输入

复制
3 2
1 3 3 1

输出

复制
2
1 2 1
示例2

输入

复制
3 2
27 27 9 1

输出

复制
0
1