#arc162e. [arc162_e]Strange Constraints

[arc162_e]Strange Constraints

問題文

11 以上 NN 以下の整数からなる長さ NN の数列 A=(A1,A2,ldots,AN)A=(A_1,A_2,\\ldots,A_N) が与えられます。

11 以上 NN 以下の整数からなる長さ NN の数列 B=(B1,B2,ldots,BN)B=(B_1,B_2,\\ldots,B_N) のうち、全ての i=1,2,ldots,Ni=1,2,\\ldots,N に対して以下の条件を満たすものの個数を 998244353998244353 で割ったあまりを求めてください。

  • BB の中に含まれる ii の個数は AiA_i 個以下
  • BB の中に含まれる BiB_i の個数は AiA_i 個以下

制約

  • 1leqNleq5001 \\leq N \\leq 500
  • 1leqAileqN1 \\leq A_i \\leq N
  • 入力される数値は全て整数

入力

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

NN A1A_1 A2A_2 ldots\\ldots ANA_N

出力

答えを出力せよ。


入力例 1

3
1 2 3

出力例 1

10

条件を満たす数列は以下の 1010 個です。

  • (1,2,2)(1,2,2)
  • (1,2,3)(1,2,3)
  • (1,3,2)(1,3,2)
  • (1,3,3)(1,3,3)
  • (2,1,3)(2,1,3)
  • (2,3,1)(2,3,1)
  • (2,3,3)(2,3,3)
  • (3,1,2)(3,1,2)
  • (3,2,1)(3,2,1)
  • (3,2,2)(3,2,2)

入力例 2

4
4 4 4 4

出力例 2

256

条件を満たす数列は、11 以上 44 以下の整数からなる長さ 44 の数列全てで、その個数は 44=2564^4=256 個です。


入力例 3

5
1 1 1 1 1

出力例 3

120

条件を満たす数列は、(1,2,3,4,5)(1,2,3,4,5) を並び替えて得られる数列全てで、その個数は 5!=1205!=120 個です。


入力例 4

14
6 5 14 3 6 7 3 11 11 2 3 7 8 10

出力例 4

628377683

個数を 998244353998244353 で割ったあまりを出力してください。