#D6164. Monotonic Renumeration

    ID: 5119 Type: Default 2000ms 256MiB

Monotonic Renumeration

Monotonic Renumeration

You are given an array a consisting of n integers. Let's denote monotonic renumeration of array a as an array b consisting of n integers such that all of the following conditions are met:

  • b_1 = 0;
  • for every pair of indices i and j such that 1 ≤ i, j ≤ n, if a_i = a_j, then b_i = b_j (note that if a_i ≠ a_j, it is still possible that b_i = b_j);
  • for every index i ∈ [1, n - 1] either b_i = b_{i + 1} or b_i + 1 = b_{i + 1}.

For example, if a = [1, 2, 1, 2, 3], then two possible monotonic renumerations of a are b = [0, 0, 0, 0, 0] and b = [0, 0, 0, 0, 1].

Your task is to calculate the number of different monotonic renumerations of a. The answer may be large, so print it modulo 998244353.

Input

The first line contains one integer n (2 ≤ n ≤ 2 ⋅ 10^5) — the number of elements in a.

The second line contains n integers a_1, a_2, ..., a_n (1 ≤ a_i ≤ 10^9).

Output

Print one integer — the number of different monotonic renumerations of a, taken modulo 998244353.

Examples

Input

5 1 2 1 2 3

Output

2

Input

2 100 1

Output

2

Input

4 1 3 3 7

Output

4

inputFormat

Input

The first line contains one integer n (2 ≤ n ≤ 2 ⋅ 10^5) — the number of elements in a.

The second line contains n integers a_1, a_2, ..., a_n (1 ≤ a_i ≤ 10^9).

outputFormat

Output

Print one integer — the number of different monotonic renumerations of a, taken modulo 998244353.

Examples

Input

5 1 2 1 2 3

Output

2

Input

2 100 1

Output

2

Input

4 1 3 3 7

Output

4

样例

4
1 3 3 7
4

</p>