만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

암호 해독

시간 제한2초메모리 제한512 MB

요약
N개 수의 배열에 대한 M개의 구간 XOR 조건이 주어질 때, 모든 조건을 만족하는 배열을 하나 찾거나 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

유형
유니온 파인드, 그래프, 비트 연산, 누적 합
정답자
아직 제출이 없습니다

문제

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

ii번째 단서는 Li,Ri,XORiL_i, R_i, XOR_i (1≤Li≤Ri≤N1 \le L_i \le R_i \le N, 0≤XORi≤1090 \le XOR_i \le 10^9)의 세 가지 값으로 이루어져 있는데, 이는 준기가 가진 수열에서 LiL_i번째 수부터 RiR_i번째 수까지를 전부 bitwise XOR한 값이 XORiXOR_i라는 뜻이다.

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

입력

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

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

출력

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

예제3

  1. 예제 1

    입력
    5 5
    1 1 2
    1 2 3
    2 3 6
    1 4 2
    2 5 7
    
    예상 출력
    2 1 7 6 7
    
  2. 예제 2

    입력
    6 6
    1 3 0
    2 3 1
    2 6 0
    3 5 0
    4 6 0
    2 5 1
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    7 4
    1 3 5
    2 3 3
    4 6 2
    3 7 1
    
    예상 출력
    6 6 5 5 0 7 6