Fabrozavrs-designers#3507

Fabrozavrs-designers

3 seconds
122.486 megabytes
Easy

Fabrozavrs are known for their fine artistic taste and landscaping hobby. They live near the very picturesque river and now and then reconstruct the path that runs along the river, either pour more land, or tear it, that is. To facilitate this work, they have divided the entire path into the horizontal sections numbered from to , and their rework is always arranged in the same way: they choose the part of the road from -th to -th section (inclusively) and change (reduce or increase) the height in all these areas at the same quantity (if before the rework the heights were different, then the heights will remain different after the rework).

Since, as stated, fabrozavrs have fine artistic taste, each of them thinks that their river is best looking from a certain height. Therefore, they want to know whether there exists a location in the vicinity of their home on the path, where the height is optimal. Help them to figure it out.

Input

First line contains two numbers and (1 \leq n, m \leq 10^5) - the length of the road and the number of queries. Second line contains integers - the initial heights of the road's sections; the heights do not exceed 10^4 by absolute value. Each of the next lines contains one query.

Query +\ L\ R\ X means that the height of road's sections from -th to -th (inclusively) should be changed by . Herewith 1 \leq L \leq R \leq n, and |X| \leq 10^4.

Query ?\ L\ R\ X means that you need to check whether there exists a section between the -th and -th sections (inclusively) where the road is at height exactly . It is guaranteed that 1 \leq L \leq R \leq n and |X| \leq 10^9.

Output

For each question of the second type print in the separate line "YES" (without quotes) if the area with desired height exist and "NO" otherwise.

Examples

Example 1

Loading
Loading