Вода
Кто возьмет билетов пачку, Тот получит водокачку!
из к/ф «Бриллиантовая рука»
Виталий является директором небольшой водопроводной компании. Он работает на водокачке. Водокачка представляет собой цилиндр высотой H метров, изначально целиком заполненный водой.
Водокачка очень старая, поэтому в ней постоянно появляются дыры. Периодически Виталий устраняет некоторые течи. Виталия как директора очень интересует уровень воды в водонапорной башне, но каждый раз лезть по лестнице, чтобы заглянуть в башню, ему не хочется.
Напишите программу, которая могла бы обрабатывать следующие запросы:
В момент времени t появилась течь на высоте h со скоростью вытекания воды v.
В момент времени t Виталий устранил все течи на высоте h.
В момент времени t Виталий хотел бы узнать уровень воды.
Вода вытекает из отверстия, только если уровень воды выше высоты отверстия. Изначально водокачка полна. Скорость вытекания воды v означает, что за единицу времени через отверстие вытекает объем воды, соответствующий v метрам воды в водокачке.
Входные данные
В первой строке содержится два целых числа n и H (1 ≤ n ≤ 10^5; 1 ≤ H ≤ 10^9) — количество запросов и высота водонапорной башни. Далее следуют n строк описывающих запросы. В каждой строке первое число k (1 ≤ k ≤ 3) — номер типа запроса. Далее в строке в зависимости от запроса идут от одного до трех целых чисел из t, h и v (0 ≤ t ≤ 10^9; 0 ≤ h ≤ H; 1 ≤ v ≤ 10^9). Запросы перечислены в порядке увеличения времени и никакие два запроса не имеют одинаковое время.
Выходные данные
На каждый запрос третьего типа выведите одно число — уровень воды в водонапорной башне в соответствующий момент времени.
Ответ должен иметь относительную или абсолютную точность 10^{-9}. Это означает, что если правильный ответ равен a, а выведено p, то значение будет признано правильным, если |a -p |/ max(a, 1) ≤ 10^{-9}.