일기예보

N개 지역의 적설량을 포인트 증가와 감소로 갱신하면서, [L, R] 구간에 들어오는 값의 개수와 T번째로 큰 값을 온라인으로 답한다.

어려움8세그먼트 트리이분 탐색정렬조합론아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

눈꽃 나라에는 하루 종일 눈이 내린다. 내린 눈은 계속 쌓이고, 또 녹는다.

눈꽃 나라의 기상 캐스터 택희는 눈 이야기만 한다. 지진이 나도 태풍이 와도 예보 형식은 늘 같다.

현재 적설량이 LLmm 이상 RRmm 이하인 지역은 A, B, C, ..., X 이상 KK개 지역입니다.

행정구역이 개편되면서 지역 수가 NN개로 늘어나자 KK개 지역을 하나씩 읽는 일이 버거워졌다. 그래서 택희는 적설량이 LLmm 이상 RRmm 이하인 지역의 수 KK만 세기로 했다. 그것만으로는 개별 지역 사정을 전혀 알 수 없으니, 눈이 TT번째로 많이 쌓인 지역의 적설량도 함께 말하기로 했다. 지역이 워낙 많아 손으로 계산하기는 어렵다. 택희는 적설량을 자동으로 관리하는 프로그램을 만들려고 한다.

프로그램은 네 가지 작업을 처리한다.

  1. 지역 ii에 눈이 xxmm 쌓인다.
  2. 지역 ii의 눈이 yymm 녹는다.
  3. 적설량이 LLmm 이상 RRmm 이하인 지역의 수를 센다.
  4. 적설량이 TT번째로 많은 지역의 적설량을 구한다.

4번 작업에서 같은 값은 중복해서 모두 센다. 예를 들어 다섯 지역의 적설량이 (3,1,2,1,2)(3, 1, 2, 1, 2)이면 TT가 1, 2, 3, 4, 5일 때 답은 차례로 3, 2, 2, 1, 1이다.

예보는 빨라야 하므로 프로그램도 빨라야 한다. 택희를 대신해 프로그램을 작성하라.

입력

첫째 줄에 지역 수 NN과 명령의 수 MM이 주어진다. (1N,M1051 \le N, M \le 10^5)

둘째 줄에 각 지역에 현재 쌓인 눈의 양 S1,S2,,SNS_1, S_2, \dots, S_N이 주어진다. (0Si1090 \le S_i \le 10^9)

셋째 줄부터 MM개의 줄에 명령이 한 줄에 하나씩 주어진다. 형식은 다음 네 가지 중 하나다.

  • 1 i x: ii번 지역에 눈이 xxmm 쌓인다. (1iN1 \le i \le N, 1x1091 \le x \le 10^9)
  • 2 i y: ii번 지역의 눈이 yymm 녹는다. (1iN1 \le i \le N, 1y1091 \le y \le 10^9)
  • 3 L R: 적설량이 LLmm 이상 RRmm 이하인 지역의 수를 센다. (0LR10180 \le L \le R \le 10^{18})
  • 4 T: 적설량이 TT번째로 많은 지역의 적설량을 구한다. (1TN1 \le T \le N)

2번 명령으로 어떤 지역의 적설량이 음수가 되는 경우는 없다.

출력

3번 명령과 4번 명령이 주어질 때마다 그 답을 한 줄에 정수 하나씩 출력한다.