Återuppfinnande av matematiken | 프로그래밍의 벗 PivotOJ
PivotOJ

Återuppfinnande av matematiken

시간 제한: 5000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2021 — finalBOJ 21372

문제

Ånej, all matematik har gått upp i rök! Hur gick det här till? Du hinner inte fundera över saken, utan inser att du måste återuppfinna så mycket matematik som möjligt innan världen går under! Även om all faktisk kunskap försvunnit så vet du lite om matematiken. Matematiken är uppbyggd av NN satser. Varje sats, ii, beror på ett antal satser ai1,ai2,,aik<ia_{i_1}, a_{i_2}, \cdots, a_{i_k} < i, som måste bevisas innan man kan börja med satsen. För att visa sats ii måste du spendera tit_i tid. Värdet av en visad sats är viv_i.

Du har TT tid på dig. Välj vilka satser du ska bevisa för att maximera det totala värdet av matematiken du hinner återuppfinna.

입력

Den första raden innehåller ett heltal CC (0C100 \leq C \leq 10), numret på testfallet (00 är exempelfallet nedan).

Den andra raden innehåller två heltal: NN (1N1051 \le N \le 10^5) och TT (1T1071 \le T \le 10^7)

Därefter följer NN beskrivningar av satser. En beskrivning av en sats består av två rader. Först kommer en rad med tre heltal: 0ti1040 \le t_i \le 10^4, 0vi1040 \le v_i \le 10^4, 0kiN0 \le k_i \le N. Därefter kommer en rad med kik_i heltal: ai1,ai2,,aik<ia_{i_1}, a_{i_2}, \cdots, a_{i_k} < i -- indexen på satserna som måste bevisas innan den här satsen. Satserna är indexerade från 0 i ordningen de kommer i input.

출력

Skriv först ut en rad med ett tal SS (0SN0 \le S \le N), antal satser du ska bevisa. Skriv därefter ut en rad med SS heltal, satserna du bevisar i ordning du bevisar dem.

예제

예제 1

입력
0
5 11
1 1 0

2 7 1
0
4 2 1
0
5 1 1
0
1 10 2
2 3
출력
4
0 2 3 4
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.