eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Вода

Вода

Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB

Кто возьмет билетов пачку, Тот получит водокачку!

из к/ф «Бриллиантовая рука»

Виталий является директором небольшой водопроводной компании. Он работает на водокачке. Водокачка представляет собой цилиндр высотой H метров, изначально целиком заполненный водой.

Водокачка очень старая, поэтому в ней постоянно появляются дыры. Периодически Виталий устраняет некоторые течи. Виталия как директора очень интересует уровень воды в водонапорной башне, но каждый раз лезть по лестнице, чтобы заглянуть в башню, ему не хочется.

Напишите программу, которая могла бы обрабатывать следующие запросы:

  1. В момент времени t появилась течь на высоте h со скоростью вытекания воды v.

  2. В момент времени t Виталий устранил все течи на высоте h.

  3. В момент времени t Виталий хотел бы узнать уровень воды.

Вода вытекает из отверстия, только если уровень воды выше высоты отверстия. Изначально водокачка полна. Скорость вытекания воды v означает, что за единицу времени через отверстие вытекает объем воды, соответствующий v метрам воды в водокачке.

Вхідні дані

В первой строке содержится два целых числа n и H (1n10^5; 1H10^9) — количество запросов и высота водонапорной башни. Далее следуют n строк описывающих запросы. В каждой строке первое число k (1k3) — номер типа запроса. Далее в строке в зависимости от запроса идут от одного до трех целых чисел из t, h и v (0t10^9; 0hH; 1v10^9). Запросы перечислены в порядке увеличения времени и никакие два запроса не имеют одинаковое время.

Вихідні дані

На каждый запрос третьего типа выведите одно число — уровень воды в водонапорной башне в соответствующий момент времени.

Ответ должен иметь относительную или абсолютную точность 10^{-9}. Это означает, что если правильный ответ равен a, а выведено p, то значение будет признано правильным, если |a -p |/ max(a, 1)10^{-9}.

Приклад

Вхідні дані #1
6 10
1 0 1 2
3 1
3 2
2 3 1
3 4
3 5
Вихідні дані #1
8.0
6.0
4.0
4.0