#TENKA12018F. Circular

Circular

Score : 900900 points

Problem Statement

You are given a sequence of NN integers: A1,A2,...,ANA_1,A_2,...,A_N.

Find the number of permutations p1,p2,...,pNp_1,p_2,...,p_N of 1,2,...,N1,2,...,N that can be changed to A1,A2,...,ANA_1,A_2,...,A_N by performing the following operation some number of times (possibly zero), modulo 998244353998244353:

  • For each 1iN1\leq i\leq N, let qi=min(pi1,pi)q_i=min(p_{i-1},p_{i}), where p0=pNp_0=p_N. Replace the sequence pp with the sequence qq.

Constraints

  • 1N3×1051 \leq N \leq 3 \times 10^5
  • 1AiN1 \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

::

ANA_N

Output

Print the number of the sequences that satisfy the condition, modulo 998244353998244353.

Sample Input 1

3
1
2
1

Sample Output 1

2

(2,3,1)(2,3,1) and (3,2,1)(3,2,1) satisfy the condition.

Sample Input 2

5
3
1
4
1
5

Sample Output 2

0

Sample Input 3

8
4
4
4
1
1
1
2
2

Sample Output 3

24

Sample Input 4

6
1
1
6
2
2
2

Sample Output 4

0