만드는 중입니다

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

다양한 노래

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

요약
가수마다 최소 한 곡을 부르고 모든 곡이 한 번 이상 불리도록 공연 목록을 고릅니다. 가수별, 곡별로 같은 언어는 한 번만 씁니다.
난이도

보통10점 중 7점

유형
그래프, BFS
정답자
아직 제출이 없습니다

문제

현대 사회에서는 다양성이 큰 관심사이며, 특히 언어의 다양성이 그렇다. 그래서 이번 장기 자랑은 여러 언어로 진행된다. 다만 프로그램을 다양하면서도 지루하지 않게 만드는 것은 어려운 문제이다.

가수는 nn명이고, 공연할 노래는 mm곡이다. 각 가수는 레퍼토리에 여러 곡을 갖고 있으며, 그중 일부 곡은 서로 다른 언어로 부를 수 있다. 프로그램이 완전하려면 각 참가자가 최소 한 곡을 불러야 하고, 각 곡이 최소 한 번은 불려야 한다. 프로그램이 지루하지 않으려면 각 참가자는 같은 언어를 두 번 이상 쓸 수 없고, 각 곡도 같은 언어로 두 번 이상 부를 수 없다.

각 가수의 레퍼토리가 주어졌을 때, 완전하고 지루하지 않은 프로그램을 만들거나 그것이 불가능하다고 판단하라.

입력

첫 줄에 세 정수 nn, mm, kk가 주어진다. 각각 가수의 수, 노래의 수, 가능한 공연(레퍼토리 항목)의 수이다 (1≤n,m≤10001 \le n, m \le 1000, 1≤k≤100001 \le k \le 10000).

다음 kk개 줄의 각 줄에는 세 정수 pip_i, sis_i, lil_i가 주어진다 (1≤pi≤n1 \le p_i \le n, 1≤si≤m1 \le s_i \le m, 1≤li≤k1 \le l_i \le k). 이는 참가자 pip_i가 언어 lil_i로 노래 sis_i를 부를 수 있다는 뜻이다.

출력

완전하고 지루하지 않은 프로그램을 만들 수 없으면 -1을 한 줄에 출력한다.

그렇지 않으면 첫 줄에 공연할 노래의 수 tt를 출력한다. 둘째 줄에는 프로그램에 포함할 레퍼토리 항목 번호를 1부터 kk 사이의 서로 다른 정수 tt개로 출력한다. 항목 번호는 입력 순서대로 1부터 매겨지며, 출력 순서는 자유롭다. 답이 여러 개이면 그중 아무거나 출력한다.

예제3

  1. 예제 1

    입력
    2 2 4
    1 1 1
    1 2 1
    1 2 2
    2 2 2
    
    예상 출력
    2
    1 4
    
  2. 예제 2

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

    입력
    2 3 4
    1 1 1
    1 2 1
    2 2 2
    2 3 2
    
    예상 출력
    -1