#agc056b. [agc056_b]Range Argmax

[agc056_b]Range Argmax

問題文

整数 NN と整数の組が MM 個与えられます. ii 番目の組は (Li,Ri)(L_i,R_i) です.

以下の手順で生成されうる整数列 x=(x1,x2,cdots,xM)x=(x_1,x_2,\\cdots,x_M) の個数を 998244353998244353 で割った余りを求めて下さい.

  • (1,2,cdots,N)(1,2,\\cdots,N) の順列 p=(p1,p2,cdots,pN)p=(p_1,p_2,\\cdots,p_N) を用意する.
  • ii (1leqileqM1 \\leq i \\leq M) について,pLi,pLi+1,cdots,pRip_{L_i},p_{L_i+1},\\cdots,p_{R_i} の中で最も大きい値の index を xix_i とする. つまり,max(pLi,pLi+1,cdots,pRi)=pxi\\max(p_{L_i},p_{L_i+1},\\cdots,p_{R_i})=p_{x_i} である.

制約

  • 2leqNleq3002 \\leq N \\leq 300
  • 1leqMleqN(N1)/21 \\leq M \\leq N(N-1)/2
  • 1leqLi<RileqN1 \\leq L_i < R_i \\leq N
  • (Li,Ri)neq(Lj,Rj)(L_i,R_i) \\neq (L_j,R_j) (ineqji \\neq j)
  • 入力される値はすべて整数である

入力

入力は以下の形式で標準入力から与えられる.

NN MM L1L_1 R1R_1 L2L_2 R2R_2 vdots\\vdots LML_M RMR_M

出力

答えを出力せよ.


入力例 1

3 2
1 2
1 3

出力例 1

4

例えば,p=(2,1,3)p=(2,1,3) とした場合は x=(1,3)x=(1,3) となります.

条件を満たす数列は,x=(1,1),(1,3),(2,2),(2,3)x=(1,1),(1,3),(2,2),(2,3)44 通りです.


入力例 2

6 3
1 2
3 4
5 6

出力例 2

8

入力例 3

10 10
8 10
5 8
5 7
2 5
1 7
4 5
5 9
2 8
7 8
3 9

出力例 3

1060