Ministarstvo
문제
Pero se nakon uspješne karijere u stranci koju nećemo imenovati, zaposlio u Ministarstvu turizma. Pero nadgleda mrežu od gradova, označenih brojevima od do , gdje između svaka dva grada postoji točno jedna jednosmjerna cesta. Kako bi povećao prihode, odlučio je uvesti dozvole za prometovanje. Pero bi najradije uveo posebnu dozvolu za svaku cestu, no to bi alarmiralo njegove nadređene. Stoga, uvest će različitih dozvola, označenih od do , te će za prolazak svakom cestom biti potrebno posjedovanje točno određene dozvole.
Kako bi ipak osigurao pozamašne prihode, Pero će se zadovoljiti sa sljedećim svojstvom.
- Za svaki grad postoji neki grad , tako da iz grada nije moguće doći do grada posjedovanjem samo jedne dozvole.
Pero vas moli da mu pomognete, te da odredite najmanji takav da postoji pridruživanje dozvola s traženim svojstvom te neko takvo pridruživanje! Ako ne postoji takvo pridruživanje, ispišite -1.
입력
U prvom je retku prirodan broj .
U -tom od sljedećih redaka nalazi se brojeva gdje je ako postoji cesta iz grada u grad . Primijetite da je te da je za točno jedan od brojeva te različit od nula.
출력
Ako ne postoji pridruživanje s traženim svojstvom u prvi i jedini redak ispište -1.
Inače, u prvi redak ispišite minimalan prirodan broj .
U sljedećih redaka ispište opis pridruživanja.
U -tom retku ispišite brojeva gdje ako je tada je i , a u suprotnom 1 ≤ b_{i,j} ≤ K označava koja je dozvola potrebna za prometovanje tom cestom.
힌트
Pojašnjenje trećeg probnog primjera:
Ceste za koje je potrebna prva dozvola su označene crvenom bojom, druga dozvola plavom i treća dozvola zelenom.
Iz grada nije moguće doći do grada koristeći samo jednu dozvolu.
Iz grada nije moguće doći do grada koristeći samo jednu dozvolu.
Iz grada nije moguće doći do grada koristeći samo jednu dozvolu.
Iz grada nije moguće doći do grada koristeći samo jednu dozvolu.
[이미지 1]
예제
예제 1
3 0 1 0 0 0 1 1 0 0
3 0 1 0 0 0 2 3 0 0
예제 2
3 0 1 1 0 0 1 0 0 0
-1
예제 3
4 0 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0
3 0 1 0 1 0 0 2 3 3 0 0 0 0 0 2 0