송유관 II

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

문제

새로 설립된 산업 단지에 발전소가 계속해서 들어서고 있다. 산업단지에는 NN개의 주유소가 11번부터 NN번까지 일렬로 나열 되어있고 주유소를 통해 발전소에 기름을 공급 받고자 한다.

이때 다음과 같은 이벤트가 주어진다.

  • 11 LL RR TT: 새로운 발전소가 산업 단지에 들어왔고 TT 이상의 기름을 공급 받아야 발전소가 가동되며, LL번 주유소부터 RR번 주유소까지 RL+1R-L+1개의 주유소에 송유관을 일렬로 설치한다. 이 발전소 전에 산업단지에 들어온 발전소의 개수가 PP개라면 이 발전소의 번호는 P+1P+1이다.
  • 22 II CC: II번 주유소에 송유관이 설치된 모든 발전소에 각각 CC만큼의 기름을 공급한다. 이 이벤트 직후에 가동된 발전소가 있다면 가동된 발전소의 개수와 발전소의 번호들을 출력해야 한다. 이 이벤트 전에 가동된 발전소는 출력에 포함되지 않음에 유의하자.

단, 11번 이벤트는 최대 5,0005 \\,000번 이하로 발생한다. 이벤트가 주어질 때 22번 이벤트에 대해 올바른 답을 출력하자.

입력

입력에 첫 번째 줄에 주유소의 수와 이벤트의 개수를 나타내는 NNQQ가 차례대로 정수로 주어진다.(1N100,000;(1 \le N \le 100 \\,000; 1Q500,000)1 \le Q \le 500 \\,000)

다음 각 Q줄에는 이벤트에 대한 정보가 주어진다. 두 번째 유형의 마지막 이벤트에 조건을 만족한 발전소의 개수가 lastlast라고 할 때. 11번 이벤트는 11 xx yy TT 형태로 주어지며 L=xlastL = x \oplus last R=ylastR = y \oplus last로 정의된다. 22번 이벤트는 22 zz CC의 형태로 주어지며 I=zlastI = z \oplus last로 정의된다. (1LRN(1 \leq L \leq R \leq N,1IN1 \leq I \leq N, 1T500,0001 \leq T \leq 500,000, 1C500,000)1 \leq C \leq 500,000)

Q줄의 입력에서 생성된 LL,RR,II값이 범위에 어긋나지 않음이 보장되며 두번째 유형의 첫번째 이벤트가 처리되기 이전에 lastlast의 값은 0이다.

출력

두 번째 유형의 각 이벤트에 대해 정답을 한 줄씩 출력하자.

각 줄에 처음에 가동된 발전소의 개수를 정수로 출력하고 가동된 발전소의 번호를 오름차순으로 출력하자.