만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

사다리타기

시간 제한4초메모리 제한512 MB

요약
세로선 n개와 가로선 m개로 이루어진 사다리 타기에서 가로선을 지우는 연산과 시작 줄의 도착 위치를 묻는 연산이 섞여 주어집니다. 질의마다 답을 구합니다.
난이도

어려움10점 중 8점

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

문제

고스트 레그(Ghost leg)는 아미다쿠지(Amidakuji)라고도 부르는 일본의 오래된 추첨 방법이다. 참가자 nn명이 nn개의 상품 중 하나씩을 받는다. 게임판은 왼쪽에서 오른쪽으로 1번부터 nn번까지 번호가 붙은 세로선 nn개로 이루어진다. 처음에 게임판에는 mm개의 가로대가 있다. 가로대는 서로 다른 높이에 있으며, 위에서 아래로 1번부터 mm번까지 번호가 붙는다. jj번 가로대는 pjp_j번 세로선과 pj+1p_j+1번 세로선을 잇는다. (아래 힌트의 그림을 참고한다.)

jj번 세로선의 맨 위에는 jj번 참가자가 있고, 맨 아래에는 jj번 상품이 있다. 참가자 jj가 받는 상품은 다음과 같이 정한다. jj번 세로선의 위쪽 끝에서 출발해 아래로 내려간다. 가로대를 만나면 반드시 그 가로대를 따라 옆 세로선으로 건너간 뒤 계속 내려간다. 경로가 끝나는 세로선 번호가 참가자의 상품 번호다.

게임판과 qq개의 사건이 주어진다. 사건은 두 가지 중 하나다. A i는 게임판에서 ii번 가로대를 제거한다는 뜻이다. B j는 참가자 jj가 현재 어떤 상품을 받는지 묻는다. B 사건 각각에 대한 답을 구한다.

입력

첫 줄에 참가자 수 nn과 가로대 수 mm이 주어진다. (2≤n≤10000002 \le n \le 1000000, 1≤m≤10000001 \le m \le 1000000) 둘째 줄에는 가로대의 위치 p1,p2,…,pmp_1, p_2, \ldots, p_m이 주어진다. (1≤pi≤n−11 \le p_i \le n-1) 다음 줄에는 사건의 수 qq가 주어진다. (1≤q≤10000001 \le q \le 1000000) 이어서 qq개의 줄에 A i 또는 B j 형식의 사건이 한 줄에 하나씩 주어진다. 같은 가로대는 두 번 이상 제거되지 않으며, B 사건은 적어도 하나 있다.

출력

B 사건마다 답을 한 줄에 하나씩 출력한다. 사건이 주어진 순서대로 출력한다.

힌트

그림은 초기 게임판을 나타낸다. 1번 참가자는 2번 가로대를 지나고, 이어서 5번 가로대를 지나 3번 상품을 받는다.

예제1

  1. 예제 1

    입력
    6 5
    2 1 5 3 2
    10
    B 1
    B 2
    B 6
    A 3
    B 6
    B 3
    A 1
    B 2
    B 3
    B 4
    
    예상 출력
    3
    4
    5
    6
    1
    1
    4
    2