100 atcoder#ABC179D. [ABC179D] Leaping Tak

[ABC179D] Leaping Tak

配点 : 400400

問題文

一列に並んだ NN マスから成るマス目があり、マスには左から順番に1,2,,N1, 2, \ldots, N の番号がついています。

このマス目で暮らしている高橋君は、現在マス 11 にいて、後述の方法で移動を繰り返してマス NN へ行こうとしています。

1010 以下の整数 KK と、共通部分を持たない KK 個の区間 [L1,R1],[L2,R2],,[LK,RK][L_1, R_1], [L_2, R_2], \ldots, [L_K, R_K] が与えられ、これらの区間の和集合を SS とします。ただし、区間 [l,r][l, r]ll 以上 rr 以下の整数の集合を表します。

  • マス ii にいるとき、SS から整数を 11 つ選んで (dd とする)、マス i+di + d に移動する。ただし、マス目の外に出るような移動を行ってはならない。

高橋君のために、マス NN に行く方法の個数を 998244353998244353 で割った余りを求めてください。

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1Kmin(N,10)1 \leq K \leq \min(N, 10)
  • 1LiRiN1 \leq L_i \leq R_i \leq N
  • [Li,Ri][L_i, R_i][Lj,Rj][L_j, R_j] は共通部分を持たない (iji \neq j)
  • 入力はすべて整数である

入力

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

NN KK

L1L_1 R1R_1

L2L_2 R2R_2

::

LKL_K RKR_K

出力

高橋くんがマス 11 からマス NN に行く方法の個数を 998244353998244353 で割った余りを出力せよ。

5 2
1 1
3 4
4

集合 SS は 区間 [1,1][1, 1] と区間 [3,4][3, 4] の和集合であり、S={1,3,4}S = \{ 1, 3, 4 \} です。

マス 55 へ移動する方法は次の 44 通りが考えられます。

  • マス 1,2,3,4,51, 2, 3, 4, 5 の順に移動する。
  • マス 1,2,51, 2, 5 の順に移動する。
  • マス 1,4,51, 4, 5 の順に移動する。
  • マス 1,51, 5 の順に移動する。
5 2
3 3
5 5
0

S={3,5}S = \{ 3, 5 \} であり、そもそもマス 55 にたどり着けないので 00 を出力してください。

5 1
1 2
5
60 3
5 8
1 3
10 15
221823067

998244353998244353 で割った余りを出力することに注意してください。