#arc128d. [arc128_d]Neq Neq

[arc128_d]Neq Neq

Problem Statement

We have NN balls arranged in a row, numbered 11 to NN from left to right. Ball ii has an integer AiA_i written on it.

You can do the following operation any number of times.

  • Choose three consecutive balls x,y,zx, y, z (1leqx<y<zleqN(1 \\leq x < y < z \\leq N). Here, AxneqAyA_x \\neq A_y and AyneqAzA_y \\neq A_z must hold. Then, eat Ball yy. After this operation, Balls xx and zz are considered adjacent.

Find the number of possible sets of balls remaining in the end, modulo 998244353998244353.

Constraints

  • 2leqNleq2000002 \\leq N \\leq 200000
  • 1leqAileqN1 \\leq A_i \\leq N
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN A1A_1 A2A_2 cdots\\cdots ANA_N

Output

Print the answer.


Sample Input 1

4
1 2 1 2

Sample Output 1

3

There are three possible sets of balls remaining in the end: 1,2,3,4,1,2,4,1,3,4\\{1,2,3,4\\},\\{1,2,4\\},\\{1,3,4\\}.


Sample Input 2

5
5 4 3 2 1

Sample Output 2

8

Different sequences of operations are not distinguished if they result in the same set of balls.


Sample Input 3

5
1 2 3 2 1

Sample Output 3

8

Different sets of remaining balls are distinguished even if they have the same sequence of integers written on them.


Sample Input 4

9
1 4 2 2 9 6 9 6 6

Sample Output 4

14