AT_abc471_d [ABC471D] Chargers

Description

無尽蔵の差込口をもつ充電器があります。時刻 $ 0 $ にはどの差込口も空です。 バッテリーの最大容量は $ V $ です。バッテリーは差込口に挿入されているあいだ、残量が最大容量に達するまで速度 $ 1 $ で充電されます(つまり、 $ 1 $ 単位時間が経過するごとに残量が $ 1 $ 増加します)。 $ Q $ 個のクエリを順に処理してください。 $ q $ 番目のクエリは以下の形式で与えられます。なお、 $ t_1 < \dots < t_Q $ が保証されます。 - タイプ $ 1 $ ( $ 1\ t_q\ w_q $ ): 時刻 $ t_q $ に、残量 $ w_q $ のバッテリーを $ 1 $ つ差込口に挿入する。 - タイプ $ 2 $ ( $ 2\ t_q $ ): 時刻 $ t_q $ に、最も残量が多いバッテリーを $ 1 $ つ差込口から排出し、そのバッテリーの残量を出力する。どの差込口にもバッテリーが無い場合は代わりに $ -1 $ を出力する。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ Q $ $ V $ $ \mathrm{query}_1 $ $ \vdots $ $ \mathrm{query}_Q $ ここで、 $ \mathrm{query}_q $ は $ q $ 番目のクエリを表し、以下の $ 2 $ 種類のいずれかの形式で与えられる。 > $ 1 $ $ t_q $ $ w_q $ > $ 2 $ $ t_q $

Output Format

タイプ $ 2 $ のクエリの個数を $ x $ として、 $ x $ 行出力せよ。 $ k $ 行目 ( $ 1 \leq k \leq x $ ) には、 $ k $ 番目のタイプ $ 2 $ のクエリで出力するべき値を出力せよ。

Explanation/Hint

### Sample Explanation 1 $ 7 $ 個のクエリを以下の順に処理します。 - 時刻 $ 15 $ に、残量 $ 60 $ のバッテリーを挿入する。この時点で、残量 $ 60 $ のバッテリーが充電器にある。 - 時刻 $ 25 $ に、残量 $ 80 $ のバッテリーを挿入する。この時点で、残量 $ 70, 80 $ のバッテリーが充電器にある。 - 時刻 $ 30 $ の時点で、残量 $ 75, 85 $ のバッテリーが充電器にある。このうち、残量 $ 85 $ のバッテリーを排出する。 - 時刻 $ 45 $ に、残量 $ 0 $ のバッテリーを挿入する。この時点で、残量 $ 0, 90 $ のバッテリーが充電器にある。 - 時刻 $ 60 $ の時点で、残量 $ 15, 100 $ のバッテリーが充電器にある。このうち、残量 $ 100 $ のバッテリーを排出する。 - 時刻 $ 70 $ の時点で、残量 $ 25 $ のバッテリーが充電器にある。このうち、残量 $ 25 $ のバッテリーを排出する。 - 時刻 $ 80 $ の時点で、充電器に挿入されたバッテリーは無い。そのため、バッテリーの排出はしない。 ### Constraints - $ 1 \leq Q \leq 3 \times 10^5 $ - $ 1 \leq V \leq 10^9 $ - タイプ $ 1 $ のクエリにおいて、 $ 1 \leq t_q \leq 10^9 $ - タイプ $ 1 $ のクエリにおいて、 $ 0 \leq w_q \leq V $ - タイプ $ 2 $ のクエリにおいて、 $ 1 \leq t_q \leq 10^9 $ - $ t_1 < \dots < t_Q $ - 入力される値はすべて整数