#arc128d. [arc128_d]Neq Neq

[arc128_d]Neq Neq

問題文

NN 個のボールが一列に並べられており,左から順に 11 から NN までの番号がついています. ボール ii には整数 AiA_i が書かれています.

あなたは,以下の操作を好きなだけ繰り返すことができます.

  • 連続して並んでいる 33 つのボール x,y,zx,y,z (1leqx<y<zleqN1 \\leq x < y < z \\leq N) を選ぶ. ただしこの時,AxneqAyA_x \\neq A_y かつ AyneqAzA_y \\neq A_z を満たす必要がある. その後,ボール yy を食べる. なお,この操作の後,ボール xx とボール zz は列の中で連続しているとみなす.

最終的に残っているボールの集合としてありうるものの個数を 998244353998244353 で割った余りを求めてください.

制約

  • 2leqNleq2000002 \\leq N \\leq 200000
  • 1leqAileqN1 \\leq A_i \\leq N
  • 入力される値はすべて整数である

入力

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

NN A1A_1 A2A_2 cdots\\cdots ANA_N

出力

答えを出力せよ.


入力例 1

4
1 2 1 2

出力例 1

3

最終的に残っているボールの集合として考えられるのは,1,2,3,4,1,2,4,1,3,4\\{1,2,3,4\\},\\{1,2,4\\},\\{1,3,4\\}33 通りです.


入力例 2

5
5 4 3 2 1

出力例 2

8

異なる操作方法でも,最終的に残るボールの集合が同じであれば区別しません.


入力例 3

5
1 2 3 2 1

出力例 3

8

残るボールに書かれた整数を並べた列が同じでも,ボールの集合が異なる場合は区別されます.


入力例 4

9
1 4 2 2 9 6 9 6 6

出力例 4

14