Vitaliy is the director of a small water supply company, working at a water tower. This tower is a cylindrical structure with a height of meters and is initially filled to the brim with water.
Due to its age, the water tower frequently develops leaks, which Vitaliy occasionally repairs. As a director, he is keen to monitor the water level in the tower but prefers not to climb up every time to check.
Your task is to write a program that processes the following types of requests:
At time , a leak appears at a height with a water outflow rate of .
At time , Vitaliy repairs all leaks at height .
At time , Vitaliy wants to know the current water level.
Water will only flow out of a hole if the water level is above the hole's height. Initially, the tower is full. The outflow rate indicates that in one unit of time, a volume of water equivalent to meters of water in the tower is lost through the hole.
The first line contains two integers and (1 \leq n \leq 10^5; 1 \leq H \leq 10^9) — the number of requests and the height of the water tower. The following lines describe the requests. Each line starts with an integer (1 \leq k \leq 3) indicating the type of request. Depending on the request type, the line may include one to three integers from , , and (0 \leq t \leq 10^9; 0 \leq h \leq H; 1 \leq v \leq 10^9). Requests are given in chronological order, with no two requests occurring at the same time.
For each request of the third type, output a single number representing the water level in the tower at that specific time.
The output must have a relative or absolute accuracy of 10^{-9}. This means if the correct answer is , and your output is , it will be considered correct if |a - p|/\max(a, 1) \leq 10^{-9}.
Example 1