배열에 원소를 추가하고 마지막 k개를 삭제하는 연산과 함께, 구간에서 x와의 XOR이 최대인 값, x 이하의 개수, k번째 작은 값을 구한다.
배열 AAA는 처음에 비어 있다. 다음 다섯 가지 쿼리를 입력에 주어진 순서대로 처리하는 프로그램을 작성한다. 배열의 인덱스는 1부터 시작한다.
1 x
2 L R x
3 k
4 L R x
5 L R k
첫째 줄에 쿼리의 개수 MMM (1≤M≤500,0001 \le M \le 500{,}0001≤M≤500,000)이 주어진다.
둘째 줄부터 MMM개의 줄에 쿼리가 한 줄에 하나씩 주어진다. 1번, 2번, 4번 쿼리의 xxx는 1≤x≤500,0001 \le x \le 500{,}0001≤x≤500,000을 만족한다.
각 쿼리를 실행하기 직전 AAA의 길이를 NNN이라고 하면, 2번, 4번, 5번 쿼리는 1≤L≤R≤N1 \le L \le R \le N1≤L≤R≤N을 만족하고 3번 쿼리는 1≤k≤N1 \le k \le N1≤k≤N을 만족한다. 5번 쿼리의 kkk는 k≤R−L+1k \le R-L+1k≤R−L+1도 만족한다.
2번, 4번, 5번 쿼리의 답을 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.