f l i n s=if i==1 then n else if s!!i > 0 then -1 else f l ((l!!(l!!i))) (n+1) ((take ((l!!(l!!i))) s)++[1]++(drop (l!!((l!!i)+1)) s))
main=do
 n<-readLn
 l<-map ((+(-1)).read).lines<$>getContents
 print$f l 0 0 (replicate n 0)