import Data.List z=filter s="start" w(a,b)=(b,a) i%m=map snd$z((==i).fst)(m++map w m) g c v f m|c=="end"=[[]]|let=map(c:)$(\x->g x(z(>"Z")$c:v)f m++[q|f,q<-g x v(2<1)m])=<1)<*>v(2<1)).map(fmap tail.span(/='-')).lines