#abc179d. [abc179_d]Leaping Tak
[abc179_d]Leaping Tak
問題文
一列に並んだ マスから成るマス目があり、マスには左から順番に の番号がついています。
このマス目で暮らしている高橋君は、現在マス にいて、後述の方法で移動を繰り返してマス へ行こうとしています。
以下の整数 と、共通部分を持たない 個の区間 \[L_1, R_1\], \[L_2, R_2\], \\ldots, \[L_K, R_K\] が与えられ、これらの区間の和集合を とします。ただし、区間 \[l, r\] は 以上 以下の整数の集合を表します。
- マス にいるとき、 から整数を つ選んで ( とする)、マス に移動する。ただし、マス目の外に出るような移動を行ってはならない。
高橋君のために、マス に行く方法の個数を で割った余りを求めてください。
制約
- \[L_i, R_i\] と \[L_j, R_j\] は共通部分を持たない ()
- 入力はすべて整数である
入力
入力は以下の形式で標準入力から与えられる。
出力
高橋くんがマス からマス に行く方法の個数を で割った余りを出力せよ。
入力例 1
5 2
1 1
3 4
出力例 1
4
集合 は 区間 \[1, 1\] と区間 \[3, 4\] の和集合であり、 です。
マス へ移動する方法は次の 通りが考えられます。
- マス の順に移動する。
- マス の順に移動する。
- マス の順に移動する。
- マス の順に移動する。
入力例 2
5 2
3 3
5 5
出力例 2
0
であり、そもそもマス にたどり着けないので を出力してください。
入力例 3
5 1
1 2
出力例 3
5
入力例 4
60 3
5 8
1 3
10 15
出力例 4
221823067
で割った余りを出力することに注意してください。