Экспедиция на Сириус

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

В компьютерную игру <<Экспедиция на Сириус>> играют nn игроков, пронумерованных от 11 до nn. За предыдущие миссии у игрока номер ii накоплено c_ic\_i единиц опыта. Будем говорить, что два игрока имеют одинаковый уровень, если у них одинаковое значение опыта. Игрок, который имеет больше опыта, имеет более высокий уровень.

Игра состоит из нескольких раундов. В конце каждого раунда каждому игроку добавляется опыт, равный количеству различных более высоких уровней у остальных игроков. Например, если значения опыта игроков \[2,5,5,1,2,10]\[2, 5, 5, 1, 2, 10], то опыт первого игрока увеличится на 2: существует два более высоких уровня --- игроки с опытом 5 и игрок с опытом 10. Опыт последнего игрока в этом примере не увеличится. Опыт игроков изменяется одновременно. То есть в конце раунда в нашем примере опыт игроков станет равным \[4,6,6,4,4,10]\[4, 6, 6, 4, 4, 10].

Вам требуется ответить на несколько вопросов. Каждый вопрос может быть одного из трех типов:

  1. Сколько различных уровней будет у игроков после kk раундов игры?
  2. Какое суммарное количество единиц опыта добавится всем игрокам за первые kk раундов?
  3. Сколько единиц опыта будет у игрока номер ii после начисления опыта в конце kk-го раунда?

입력

В первой строке даны два целых числа nn и qq (1n,q300,000)1 \le n, q \le 300\\,000) --- количество игроков и количество вопросов, на которые вам нужно ответить.

Во второй строке даны nn целых чисел c_ic\_i (0c_i10120 \le c\_i \le 10^{12}) --- количество единиц опыта у каждого из игроков в начале текущей игры.

В следующих qq строках даны описания вопросов. Каждая строка начинается с целого числа tt (t1,2,3t \in \\{1, 2, 3\\}), которое обозначает тип вопроса.

  • Если t=1t = 1, далее дано целое число kk (0k10120 \le k \le 10^{12}) --- количество раундов.
  • Если t=2t = 2, далее дано целое число kk (0k10120 \le k \le 10^{12}) --- количество раундов.
  • Если t=3t = 3, далее даны два целых числа kk и ii (0k10120 \le k \le 10^{12}, 1in1 \le i \le n) --- количество раундов и номер игрока, опыт которого нас интересует.

Во всех вопросах k=0k = 0 означает момент начала игры до проведения первого раунда.

출력

Для каждого вопроса выведите ответ на него в новой строке.

힌트

В первом тесте опыт игроков изменяется следующим образом:

Раундc_1c\_1c_2c\_2c_3c\_3c_4c\_4c_5c\_5c_6c\_6
начало игры544222
1555444
2555555

Во втором тесте опыт игроков изменяется следующим образом:

Раундc_1c\_1c_2c\_2c_3c\_3c_4c\_4c_5c\_5
начало игры03542
145555