#arc140d. [arc140_d]One to One

[arc140_d]One to One

問題文

全ての要素が 11 以上 NN 以下である長さ NN の整数列 X=(X1,X2,dots,XN)X=(X_1,X_2,\\dots,X_N) に対して次の問題を考え、その答えを f(X)f(X) とします。

NN 頂点の無向グラフ GG があります。(GG は多重辺や自己ループを含むことがあります。) GG の辺は NN 本あり、そのうち ii 番目の辺は頂点 ii と頂点 XiX_i を繋ぐ辺です。GG の連結成分の個数を求めてください。

長さ NN の整数列 A=(A1,A2,dots,AN)A=(A_1,A_2,\\dots,A_N) が与えられます。各 AiA_i11 以上 NN 以下の整数あるいは \-1\-1 です。

全ての要素が 11 以上 NN 以下である長さ NN の整数列 X=(X1,X2,dots,XN)X=(X_1,X_2,\\dots,X_N) であって、Aineq1RightarrowAi=XiA_i \\neq -1 \\Rightarrow A_i = X_i を満たすものを考えます。そのような全ての XX に対する f(X)f(X) の総和を 998244353998244353 で割ったあまりを求めてください。

制約

  • 1leNle20001 \\le N \\le 2000
  • AiA_i11 以上 NN 以下あるいは \-1\-1 である。
  • 入力は全て整数である。

入力

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

NN A1A_1 A2A_2 dots\\dots ANA_N

出力

答えを出力せよ。


入力例 1

3
-1 1 3

出力例 1

5

XX として条件を満たすものは以下の 33 通りがあります。

  • X=(1,1,3)X=(1,1,3) の時、問題の答えは 22 です。
  • X=(2,1,3)X=(2,1,3) の時、問題の答えは 22 です。
  • X=(3,1,3)X=(3,1,3) の時、問題の答えは 11 です。

よって答えは 2+2+1=52+2+1=5 です。


入力例 2

1
1

出力例 2

1

入力例 3

8
-1 3 -1 -1 8 -1 -1 -1

出力例 3

433760