Задача №113693. Вода

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


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

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

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

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

  1. В момент времени \(t\) появилась течь на высоте \(h\) со скоростью вытекания воды \(v\).
  2. В момент времени \(t\) Виталий устранил все течи на высоте \(h\).
  3. В момент времени \(t\) Виталий хотел бы узнать уровень воды.
Вода вытекает из отверстия, только если уровень воды выше высоты отверстия. Изначально водокачка полна. Скорость вытекания воды \(v\) означает, что за единицу времени через отверстие вытекает объем воды, соответствующий v метрам воды в водокачке.

Входные данные

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

Выходные данные

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

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

Примеры
Входные данные
6 10
1 0 1 2
3 1
3 2
2 3 1
3 4
3 5
Выходные данные
8.0
6.0
4.0
4.0
Сдать: для сдачи задач необходимо войти в систему