만드는 중입니다

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

공원에서 조깅하기

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

요약
1번 정원에서 출발한 k개의 경로를 각각 늘려 모두 n번 정원에서 같은 총 길이로 끝나게 하는 문제입니다. 불가능하면 -1을 출력합니다.
난이도

어려움10점 중 8점

유형
그래프, 최단 경로, 정수론, 수학
정답자
아직 제출이 없습니다

문제

외곽 공원은 조깅하기에 아주 좋다. 공원 안에는 1번부터 nn번까지 번호가 붙은 광장이 nn개 있다. 광장들은 mm개의 산책로로 이어져 있다. ii번째 산책로는 광장 aia_i와 bib_i를 잇고, 길이는 cic_i미터이다. 모든 산책로는 양방향으로 지날 수 있다. 정문은 1번 광장에 있다.

친구들은 각자 정문에서 출발해 산책로를 따라 광장을 옮겨 다니는 경로를 짰다. 달리기가 끝나면 모두 같은 시각에 카페가 있는 nn번 광장에 도착하려고 한다. 그런데 경로 중에는 nn번 광장에서 끝나지 않는 것도 있고, 경로마다 길이도 다르다. 친구들은 모두 같은 속도로 달린다.

각 경로를 원래 경로와 같은 광장으로 시작하고, nn번 광장에서 끝나며, 다른 모든 확장 경로와 길이가 정확히 같도록 늘려라. 원래 경로와 확장 경로 모두 같은 산책로를 여러 번 지나도 된다.

입력

첫 줄에 광장 수와 산책로 수를 나타내는 정수 nn, mm이 주어진다(2≤n≤502 \le n \le 50; 1≤m≤n(n−1)21 \le m \le \frac{n(n-1)}{2}). 이어지는 mm개의 줄에는 각각 정수 aia_i, bib_i, cic_i가 주어진다(1≤ai,bi≤n1 \le a_i, b_i \le n; ai≠bia_i \ne b_i; 1≤ci≤1061 \le c_i \le 10^6). 이는 ii번째 산책로가 잇는 두 광장과 그 길이다.

다음 줄에는 친구 수를 나타내는 정수 kk가 주어진다(2≤k≤502 \le k \le 50). 이어지는 kk개의 줄에는 각각 ii번째 친구 경로의 광장 수 lil_i(2≤li≤502 \le l_i \le 50)와, 뒤이어 그 경로의 광장 gi,1,…,gi,lig_{i,1}, \ldots, g_{i,l_i}(1≤gi,j≤n1 \le g_{i,j} \le n)가 주어진다.

모든 무순서쌍 (ai,bi)(a_i, b_i)는 서로 다르다. 모든 ii에 대해 gi,1=1g_{i,1} = 1이다. 11부터 li−1l_i - 1까지의 모든 jj에 대해 광장 gi,jg_{i,j}와 gi,j+1g_{i,j+1} 사이에 산책로가 있다.

출력

모든 경로를 늘릴 수 없으면 정수 -1 하나만 출력한다. 그렇지 않으면 kk개의 줄을 출력한다. ii번째 줄에는 pip_i(pi≥lip_i \ge l_i)와 뒤이어 pip_i개의 정수 hi,1,…,hi,pih_{i,1}, \ldots, h_{i,p_i}(1≤hi,j≤n1 \le h_{i,j} \le n)를 출력한다. 이는 ii번째 확장 경로의 광장 순서이다.

모든 ii에 대해 hi,pi=nh_{i,p_i} = n이어야 한다. 11부터 pi−1p_i - 1까지의 모든 jj에 대해 광장 hi,jh_{i,j}와 hi,j+1h_{i,j+1} 사이에 산책로가 있어야 한다. 11부터 lil_i까지의 모든 jj에 대해 hi,j=gi,jh_{i,j} = g_{i,j}이어야 한다. 모든 확장 경로의 총 길이는 같아야 한다.

모든 pip_i의 합은 2⋅1062 \cdot 10^6을 넘으면 안 된다. 유효한 확장이 존재한다면 모든 pip_i의 합이 2⋅1062 \cdot 10^6 이하인 확장도 존재함이 보장된다.

예제1

  1. 예제 1

    입력
    4 4
    1 2 10
    2 3 30
    2 4 30
    1 4 100
    3
    2 1 2
    3 1 2 3
    2 1 4
    
    예상 출력
    5 1 2 4 2 4
    5 1 2 3 2 4
    2 1 4