만드는 중입니다

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

카투스

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

요약
사이클이 겹치지 않는 cactus 그래프에서 두 정점 사이 모든 단순 경로의 XOR 값 중 k번째로 작은 서로 다른 값을 구합니다.
난이도

어려움10점 중 9점

유형
그래프, DFS, 비트 연산, 트리
정답자
아직 제출이 없습니다

문제

캑터스 그래프는 연결된 무방향 그래프이다. 자기 루프와 다중 간선이 없고, 각 간선은 최대 하나의 단순 사이클에 속한다.

정점이 11부터 NN까지 번호 매겨진 캑터스 그래프 GG와 MM개의 간선이 주어진다. ii번째 간선은 정점 aia_i와 bib_i를 잇고, 비용은 cic_i이다.

그래프 GG에서 단순 경로의 비용은 경로에 포함된 모든 간선 비용의 비트 XOR이다.

QQ개의 질의 "xix_i yiy_i kik_i"가 주어진다. 정점 xix_i와 yiy_i를 잇는 모든 단순 경로의 비용을 구하고, 중복을 제거한 뒤 오름차순으로 정렬하여 kik_i번째 값을 출력한다. 서로 다른 값이 kik_i개보다 적으면 −1-1을 출력한다.

입력

첫 줄에 정점 수 NN과 간선 수 MM이 주어진다 (2≤N≤1052 \le N \le 10^5, N−1≤M≤2⋅105N-1 \le M \le 2 \cdot 10^5).

이어지는 MM개의 줄에는 각각 정수 aia_i, bib_i, cic_i가 주어진다 (1≤ai,bi≤N1 \le a_i, b_i \le N, ai≠bia_i \ne b_i, 0≤ci<2300 \le c_i < 2^{30}).

다음 줄에는 질의의 개수 QQ가 주어진다 (1≤Q≤2⋅1051 \le Q \le 2 \cdot 10^5).

이어지는 QQ개의 줄에는 각각 정수 xix_i, yiy_i, kik_i가 주어진다 (1≤xi,yi≤N1 \le x_i, y_i \le N, xi≠yix_i \ne y_i, 1≤ki≤2301 \le k_i \le 2^{30}).

출력

각 질의의 답을 한 줄에 정수 하나로 출력한다.

예제1

  1. 예제 1

    입력
    4 4
    1 2 2
    1 3 8
    2 3 0
    1 4 6
    4
    2 1 1
    1 2 2
    4 1 1
    4 3 2020
    
    예상 출력
    2
    8
    6
    -1