아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Держать строй

시간 제한2초메모리 제한1024 MB

요약
배열의 한 원소를 바꾸는 갱신을 처리하며 매 질의마다 배열 전체가 비내림차순인지 판별한다.
난이도

보통10점 중 5점

유형
세그먼트 트리, 배열
정답자
아직 제출이 없습니다

문제

Ник Фьюри решил, что бойцы отряда спецназа, являющегося подразделением организации S.H.I.E.L.D., помогут мстителям отразить атаку войска Локи. Он решил, что в бой отправятся nn бойцов, а все остальные понадобятся в других местах. Теперь ему осталось только выбрать, какие именно бойцы пойдут в атаку.

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

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

입력

Первая строка входного файла содержит два числа nn и mm (1≤n≤100,0001 \le n \le 100{\\,}000, 0≤m≤200,0000 \le m \le 200{\\,}000) --- количество солдат в строю и количество команд, которые подаст Ник. Вторая строка содержит nn целых неотрицательных чисел, не превосходящих 10910^9 --- исходный рост солдат в строю.

Следующие mm строк содержат команды, подаваемые Ником. Если первый символ в строке, описывающей очередную команду, '!', то за ним следуют два числа kk и xx (1≤k≤n1 \le k \le n, 0≤x≤1090 \le x \le 10^9), где kk --- место в строю того солдата, которого должен заменить солдат роста xx. Команда второго типа описывается знаком '?'.

출력

Для каждой команды второго типа в отдельной строке выведите <<YES>>, если в данный момент солдаты в строю стоят по неубыванию роста, и <<NO>> --- в противном случае.

예제1

  1. 예제 1

    입력
    5 5
    2 4 6 8 10
    ?
    ! 2 7
    ?
    ! 3 8
    ?
    
    예상 출력
    YES
    NO
    YES