Фаброзаври відомі своїми тонкими художніми уподобаннями та захопленням ландшафтним дизайном. Вони живуть поблизу дуже мальовничої річки і частенько перебудовують стежинку, яка йде вздовж річки: або насипають додаткової землі, або зривають те, що є. Для того, щоб спростити ці роботи, вони поділили усю стежинку на горизонтальні ділянки пронумеровані від до , і їх перебудови влаштовані завжди однаково: вони вибирають частину дороги від -ї до -ї ділянки (включно) і змінюють (зменшують чи збільшують) висоту на усіх цих ділянках на одну й ту ж величину (якщо до початку перебудови висоти були різними, то і після перебудови вони залишаться різними).
Оскільки, як уже було сказано, у фаброзаврів тонкі художні уподобання, кожен з них вважає, що їхня річка краще усього виглядає з певної висоти. Тому їм хочеться знати, чи є поблизу від їх домівки місце на стежинці, де висота на їх погляд оптимальна. Допоможіть їм у цьому розібратись.
Перший рядок містить два числа та - довжину дороги та кількість запитів відповідно (1 \leq n, m \leq 10^5). У другому рядку міститься чисел, відокремлених пропусками - початкові висоти відповідних частин дороги; висоти не перевищують 10^4 за модулем. У наступних рядках містяться запити по одному у рядку.
Запит +\ L\ R\ X означає, що висоту частин дороги від -ої до -ої (включно) потрібно змінити на . При цьому 1 \leq L \leq R \leq n, а |X| \leq 10^4.
Запит ?\ L\ R\ X означає, що потрібно перевірити, чи є між -ою та -ою ділянками (включаючи ці ділянки) ділянка, де дорога проходить точно на висоті . Гарантується, що 1 \leq L \leq R \leq n, а |X| \leq 10^9.
На кожен запит другого типу потрібно вивести в окремому рядку слово "YES" (без лапок), якщо потрібна ділянка існує, і "NO" у протилежному випадку.
Приклад 1