시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 512 MB68252036.364%

문제

준기는 $N$($ 1 \le N \le 2 \cdot 10^5 $)개의 수로 이루어진 수열를 암호화하는 새로운 규칙을 발명했다. 준기의 암호화는 $M$($ 1 \le M \le 2 \cdot 10^ 5$)개의 단서로 구성된다. 

$i$번째 단서는 $L_i, R_i, XOR_i$ ($ 1 \le L_i \le R_i \le N, 0 \le XOR_i \le 10^9$)의 세가지 값으로 이루어져 있는데, 이는 준기가 가진 수열에서 $L_i$ 번째 수부터 $R_i$ 번째 수까지를 전부 bitwise XOR한 값이 $XOR_i$라는 뜻이다.

승원은 준기의 암호화 규칙을 듣고 주어진 규칙을 만족하는 $N$개의 수를 복구해내는 방법을 찾으려고 했지만 결국 실패하고 말았다. 승원를 도와 준기의 암호화 규칙이 주어졌을 때 주어진 규칙을 만족하는 $N$개의 수를 출력하는 프로그램을 작성해보자.

입력

첫줄에 $N, M$이 공백으로 구분되어 주어진다($ 1 \le N, M \le 2 \cdot 10^5 $).

둘째 줄부터 $M$줄에 걸쳐 $L_i, R_i, XOR_i$ ($ 1 \le L_i \le R_i \le N, 0 \le XOR_i \le 10^9$)가 공백으로 구분되어 주어진다. 이는 각각 배열에서 $L_i$번째 수부터 $R_i$번째 수까지를 bitwise XOR한 값이 $XOR_i$라는 뜻이다.

출력

주어진 $M$개의 규칙을 모두 만족하는 $N$개의 수를 공백으로 구분하여 출력한다. 결과 배열을 구성하는 수는 $0$ 이상 $2 \cdot 10^9$ 이하의 수여야 한다. 조건을 만족하는 수열이 여러 가지라면 아무거나 출력한다. 만약 조건을 모두 만족하는 수열이 존재하지 않는다면 $-1$을 출력한다.

예제 입력 1

5 5
1 1 2
1 2 3
2 3 6
1 4 2
2 5 7

예제 출력 1

2 1 7 6 7

예제 입력 2

6 6
1 3 0
2 3 1
2 6 0
3 5 0
4 6 0
2 5 1

예제 출력 2

-1

예제 입력 3

7 4
1 3 5
2 3 3
4 6 2
3 7 1

예제 출력 3

6 6 5 5 0 7 6

출처