Очередь в банк

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

요약
큐에 원소를 뒤에 추가하고 앞에서 제거하며, 주어진 위치보다 앞에 있는 사람 중 기분이 x 이상인 사람의 수를 구한다.
난이도

보통10점 중 6점

유형
배열, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

Недавно Скрудж устроился работать охранником в банке. Работа скучная, делать нечего, поэтому он начал следить за очередью. Исходно в очереди стоит nn человек. Так как до этого несколько лет Скрудж работал психологом, он смог довольно точно оценить настроение каждого человека в очереди. Скрудж пронумеровал людей в очереди по порядку, начиная с нуля, таким образом получилось, что номер человека в очереди равен числу людей, которое стоит в очереди перед ним. Настроение ii-го человека он описал целым неотрицательным числом a_ia\_i. Скрудж считает, что у человека хорошее настроение, если оно не меньше xx. Если это не так, то настроение у человека плохое.

Люди приходят в очередь, уходят из нее. Если в очередь приходит новый человек, Скрудж мгновенно оценивает его настроение, и с течением времени оно не меняется.

Теперь Скрудж придумал себе следующее занятие: в некоторые моменты времени он выбирает одного человека из очереди и считает, сколько перед ним стоит человек с хорошим настроением. Это занятие уже показалось ему интересным, и он решил придумать, как его можно автоматизировать. Так как сам Скрудж не силен в программировании, помощи в решении этой задачи он попросил у вас. Помогите ему!

입력

В первой строке входного файла даны два числа nn, xx (1≤n≤100,000,0≤x≤1091 \le n \le 100\\,000, 0 \le x \le 10^9) --- начальное количество человек в очереди и нижняя граница хорошего настроения.

В следующей строке даны nn чисел a_ia\_i --- настроения людей в очереди (0≤a_i≤1090 \le a\_i \le 10^9).

В третьей строке входного файла дано число mm (1≤m≤100,0001 \le m \le 100\\,000) --- количество событий, которые происходили с очередью. В следующих mm строках дано описание событий. Событие описывается одним из трех способов:

  • 1 aa (0≤a≤1090 \le a \le 10^9) --- в конец очереди приходит человек с настроением, равным aa.
  • 2 --- из очереди уходит человек, перед которым никого не стоит (в нумерации Скруджа он имеет номер 0). После этого Скрудж мысленно уменьшает номера людей в очереди на 1.
  • 3 ii --- Скрудж хочет узнать, сколько людей с хорошим настроением стоит перед человеком, перед которым в очереди в этот момент стоит ii человек.

Гарантируется, что все запросы корректны: если в очереди никого нет, то операция второго типа не выполняется, а количество человек в очереди всегда будет строго больше ii в запросе третьего типа.

출력

На каждый запрос третьего типа в отдельной строке выходного файла выведите одно число --- количество человек с хорошим настроением, которые стоят перед человеком с данным номером.

예제2

  1. 예제 1

    입력
    1 2
    3
    5
    1 2
    1 1
    3 0
    3 1
    3 2
    
    예상 출력
    0
    1
    2
    
  2. 예제 2

    입력
    2 2
    1 2
    7
    3 0
    3 1
    2
    3 0
    1 3
    3 0
    3 1
    
    예상 출력
    0
    0
    0
    0
    1