import Data.Either e=[]:e a=m.m.m.k h=any$all i a?b|c a,i b=b|let=l 0 k d i|i==l d=r d|let=i w p=head.rights.p (x:y)#f=m(x!)(a x f):y#a x f v[]=[];v s=tail(take 6 s):v(drop 6 s) s(v:t)|'.'>v=[]:s t|(x:u)<-s t=(v:x):u p(x:y)=m read(s x)#v(m(m(l.read).words)y) m=map;r=pure;l=Left;c=isLeft;z=zipWith;i=isRight x!d|h d||h(foldr(z(:))e d)=r$(x*)$sum$lefts=<z(?)(last b)h).span(any c))<*>w(filter i=<<)).p.lines