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

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

Стеки

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

요약
n개의 스택에 구간 l..r로 값을 추가하는 연산, x번 스택의 꼭대기 값 조회, 과거 추가 연산의 취소를 처리하며 각 조회마다 꼭대기 값을 출력하거나 비어 있으면 -1을 출력한다.
난이도

보통10점 중 7점

유형
세그먼트 트리, 이분 탐색, 스택, 완전 탐색
정답자
아직 제출이 없습니다

문제

В давние времена, когда Магнето и Чарльз Ксавьер работали в одной команде, они любили играть в одну игру. Правила победы, очередность ходов и всё остальное их не интересовало --- кто убедительнее докажет, что сейчас его ход, тот и ходит. Определение победителя тоже выливалось в философский спор, не имеющий отношения к игре, и переходящий к вопросу о роли мутантов в обществе.

Нас же интересует сам процесс игры. У игроков есть nn изначально пустых стеков. Каждый игрок может сделать один из трёх ходов:

  • A l r x --- положить на вершину каждого из стеков с ll по rr число xx;
  • G x --- спросить у соперника число, лежащее на вершине xx-го стека;
  • R i --- отменить ii-й по порядку запрос добавления числа на стеки: удалить соответствующее число из каждого стека.

В один день Чарльз заметил, что Магнето стал отвечать слишком быстро. После непродолжительного наблюдения, он заметил, что хитрый Магнето написал программу, которая делает всё за него. Чарльзу это, конечно, не понравилось, но он не стал обвинять соперника в мошенничестве: это бы ещё больше увеличило напряжение в их отношениях. Вместо этого он решил сам автоматизировать процесс, чтобы не отставать от своего извечного соперника.

Напишите программу, которая сумеет играть в такую игру не хуже, чем Ксавьер и Магнето.

입력

В первой строке даны числа nn (1≤n≤1051 \le n \le 10^5) --- число стеков, и mm (1≤m≤1051 \le m \le 10^5) --- число запросов.

В следующих mm строках даны запросы в формате, описанном в условии. Гарантируется, что все номера стеков лежат в интервале от 11 до nn, а числа, которые кладутся на стек, удовлетворяют ограничению (1≤x≤1091 \le x \le 10^9). Для любого запроса на отмену добавления гарантируется, что соответствующий запрос добавления уже был исполнен, и ни один запрос не отменяется дважды.

출력

Для каждого запроса второго типа выведите одно число --- число, находящееся на вершине соответствующего стека, или -1, если соответствующий стек пуст.

예제1

  1. 예제 1

    입력
    3 7
    A 1 3 5
    A 2 3 3
    G 1
    G 2
    R 1
    G 1
    G 2
    
    예상 출력
    5
    3
    -1
    3