#P11632. 分身

分身

Statement

你有 nn 个分身, 还有 nn 个妹子。你所在的城市是的街区构成一个网格图,我们用 (i,j)(i,j) 表示第 ii 行第 jj 个街区。其中第 i(1in)i(1\le i\le n) 个分身起点在 (ai,0)(a_i,0),第 ii 个妹子终点在 (i,0)(i,0)

现在 nn 个妹子同时给你打电话,然而你想要调题于是让你的分身去见妹子。你的分身只能向又向下走,也即:每次只能从 (i,j)(i,j) 走到 (i+1,j)(i+1,j) 或者 (i,j1)(i,j-1) 。如果两个分身走过了同一个街区(包括起点终点),则会有人同时看到两次一样的人,这样他会非常困扰,导致世界的运转收到阻碍。

你既不想让世界的运转受到阻碍,也不想鸽妹子。所以你想要知道满足每个分身路径不相交的方案数。两种方案不同当且仅当一个分身的路径不同。

998244353998244353 取模。

Task

input

第一行一个整数 nn

第二行 nn 个整数 aia_i 表示第 ii 个起点的坐标。

output

一行一个整数表示答案。

Sample I

input

2
1 2

output

3

Constraints

对于 100%100\% 的数据,aiai+1a_i\le a_{i+1}, n5105n\le 5*10^50ai<1060\le a_i< 10^6

subtask 1(15 pts)\textbf{subtask 1(15 pts)}n20n\le 20

subtask 2(20 pts)\textbf{subtask 2(20 pts)}n500n\le 500

subtask 3(15 pts)\textbf{subtask 3(15 pts)}n2000n\le 2000

subtask 4(30 pts)\textbf{subtask 4(30 pts)}n100000,ai<200000n\le 100000,a_i< 200000

subtask 4(20 pts)\textbf{subtask 4(20 pts)}:无特殊限制。