AT_yahoo_procon2019_final_d Dangerous Hopscotch
Description
[problemUrl]: https://atcoder.jp/contests/yahoo-procon2019-final/tasks/yahoo_procon2019_final_d
$ N $ 個の石が左から右に一列に並んでいます。最初、それぞれの石の上には何も障害物が置かれていないので、自由に乗ることができます。
$ Q $ 個のクエリを処理してください。クエリには $ 2 $ 種類あり、入力形式とクエリの内容は以下のとおりです。
- `1 p`: 左から $ p_i $ 番目の石の上に障害物が置かれていなければ障害物を置き、置かれていれば障害物を取り除く。障害物が置かれた石の上には、乗ることができない。
- `2 l r`: 左から $ l $ 番目の石の上からスタートし、「$ 1 $ つ右の石にジャンプする」「$ 2 $ つ右の石にジャンプする」という操作を繰り返して、障害物が置かれた石の上に一度も乗らずに左から $ r $ 番目の石の上にたどり着く方法の総数を $ 10^9+7 $ で割った余りを求め、出力する。ただし、左から $ l $ 番目や $ r $ 番目の石の上に障害物が置かれているときは、$ 0 $ 通りとする。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Q $ $ Query_1 $ : $ Query_Q $
Output Format
`2 l r` という入力形式のクエリに対する答えを、クエリが与えられた順にそれぞれ $ 1 $ 行ずつ出力せよ。
Explanation/Hint
### 制約
- $ 2\