atcoder#ABC248F. [ABC248F] Keep Connect

[ABC248F] Keep Connect

配点 : 500500

問題文

22 以上の整数 NN および素数 PP が与えられます。 下図のような 2N2N 頂点 (3N2)(3N-2) 辺のグラフ GG を考えます。

より具体的には、頂点を順に頂点 11, 頂点 22, \ldots, 頂点 2N2N、 辺を順に辺 11, 辺 22, \ldots, 辺 (3N2)(3N-2) とすると、各辺は次のように頂点を結んでいます。

  • 1iN11\leq i\leq N-1 について、辺 ii は頂点 ii と頂点 i+1i+1 を結んでいる。
  • 1iN11\leq i\leq N-1 について、辺 (N1+i)(N-1+i) は頂点 N+iN+i と頂点 N+i+1N+i+1 を結んでいる。
  • 1iN1\leq i\leq N について、辺 (2N2+i)(2N-2+i) は頂点 ii と頂点 N+iN+i を結んでいる。

i=1,2,,N1i=1,2,\ldots ,N-1 について、次の問題を解いてください。

GG3N23N-2 本の辺からちょうど ii 本の辺を取り除く方法であって、辺を取り除いた後のグラフも連結であるようなものの個数を PP で割ったあまりを求めよ。

制約

  • 2N30002 \leq N \leq 3000
  • 9×108P1099\times 10^8 \leq P \leq 10^9
  • NN は整数である。
  • PP は素数である。

入力

入力は以下の形式で標準入力から与えられる。

NN PP

出力

N1N-1 個の整数を空白区切りで出力せよ。 ただし、kk 番目の整数は i=ki=k に対する答えである。

3 998244353
7 15

N=3N=3 の場合について、取り除いた後のグラフも連結となるように、ちょうど 11 本の辺を取り除く方法は次の 77 通りです。

取り除いた後のグラフも連結となるように、ちょうど 22 本の辺を取り除く方法は次の 1515 通りです。

よって、これらを P=998244353P=998244353 で割ったあまりである 77, 1515 をこの順に出力します。

16 999999937
46 1016 14288 143044 1079816 6349672 29622112 110569766 330377828 784245480 453609503 38603306 44981526 314279703 408855776

PP で割ったあまりを出力することに注意してください。