#D12099. Don't Exceed

    ID: 10060 Type: Default 4000ms 256MiB

Don't Exceed

Don't Exceed

You generate real numbers s1, s2, ..., sn as follows:

  • s0 = 0;
  • si = si - 1 + ti, where ti is a real number chosen independently uniformly at random between 0 and 1, inclusive.

You are given real numbers x1, x2, ..., xn. You are interested in the probability that si ≤ xi is true for all i simultaneously.

It can be shown that this can be represented as , where P and Q are coprime integers, and . Print the value of P·Q - 1 modulo 998244353.

Input

The first line contains integer n (1 ≤ n ≤ 30).

The next n lines contain real numbers x1, x2, ..., xn, given with at most six digits after the decimal point (0 < xi ≤ n).

Output

Print a single integer, the answer to the problem.

Examples

Input

4 1.00 2 3.000000 4.0

Output

1

Input

1 0.50216

Output

342677322

Input

2 0.5 1.0

Output

623902721

Input

6 0.77 1.234567 2.1 1.890 2.9999 3.77

Output

859831967

Note

In the first example, the sought probability is 1 since the sum of i real numbers which don't exceed 1 doesn't exceed i.

In the second example, the probability is x1 itself.

In the third example, the sought probability is 3 / 8.

inputFormat

Input

The first line contains integer n (1 ≤ n ≤ 30).

The next n lines contain real numbers x1, x2, ..., xn, given with at most six digits after the decimal point (0 < xi ≤ n).

outputFormat

Output

Print a single integer, the answer to the problem.

Examples

Input

4 1.00 2 3.000000 4.0

Output

1

Input

1 0.50216

Output

342677322

Input

2 0.5 1.0

Output

623902721

Input

6 0.77 1.234567 2.1 1.890 2.9999 3.77

Output

859831967

Note

In the first example, the sought probability is 1 since the sum of i real numbers which don't exceed 1 doesn't exceed i.

In the second example, the probability is x1 itself.

In the third example, the sought probability is 3 / 8.

样例

1
0.50216
342677322

</p>