#arc151b. [arc151_b]A < AP

[arc151_b]A < AP

题目描述

给定一个排列P=(P1,P2,,PN)P = (P_1, P_2, \ldots, P_N),其中PP(1,2,,N)(1, 2, \ldots, N)的一个排列。

打印出满足以下条件的长度为NN的整数序列A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N)的数量,对998244353998244353取模。

  • 对于每个i=1,2,,Ni = 1, 2, \ldots, N,满足1AiM1 \leq A_i \leq M
  • 整数序列AA在字典序上小于整数序列(AP1,AP2,,APN)(A_{P_1}, A_{P_2}, \ldots, A_{P_N})

什么是字典序?

整数序列X=(X1,X2,,XN)X = (X_1,X_2,\ldots,X_N)在满足以下条件的整数ii存在时,称其比整数序列Y=(Y1,Y2,,YN)Y = (Y_1,Y_2,\ldots,Y_N)字典序小

  • 对于所有满足1ji11 \leq j \leq i-1的整数jj,满足Xj=YjX_j=Y_j
  • 满足Xi<YiX_i < Y_i

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1M1091 \leq M \leq 10^9
  • 1PiN1 \leq P_i \leq N
  • ij    PiPji \neq j \implies P_i \neq P_j
  • 输入中的所有值都是整数。

输入

输入数据从标准输入读取,格式如下:

NN MM P1P_1 P2P_2 \ldots PNP_N

输出

打印出满足题目描述条件的长度为NN的整数序列AA的数量,对998244353998244353取模。


示例输入 1

4 2
4 1 3 2

示例输出 1

6

满足题目条件的整数序列AA66个,分别是(1,1,1,2)(1, 1, 1, 2)(1,1,2,2)(1, 1, 2, 2)(1,2,1,2)(1, 2, 1, 2)(1,2,2,2)(1, 2, 2, 2)(2,1,1,2)(2, 1, 1, 2)(2,1,2,2)(2, 1, 2, 2)
例如,当A=(1,1,1,2)A = (1, 1, 1, 2)时,我们有$(A_{P_1}, A_{P_2}, A_{P_3}, A_{P_4}) = (2, 1, 1, 1)$,其在字典序上大于AA


示例输入 2

1 1
1

示例输出 2

0

没有满足题目条件的长度为NN的整数序列AA,因此应该输出00


示例输入 3

20 100000
11 15 3 20 17 6 1 9 5 19 10 16 7 8 12 2 18 14 4 13

示例输出 3

55365742