(&)=zip s=' ' x%c=(c:x)&(x++[c]) (a:x)#y=a:y#x;x#_=x x?c=[last$s:[max a b|c<',']++[c|a/=b,a>s,b>s]|(a,b)<-x] v y=y%'~'?'|' f x=[v u&v d?s&(h%s?s)?'+'#h|(u,d)<-x%cycle"~",h<-[u&d?'-']]#[v y#y|y<-x] main=interact$unlines.f.lines