import List main=mapM putStrLn$z++[z!!18] z=map concat.t.(++[t["+||"]])=<<(snd$m((.groupBy(\_ k->'Z'>" " n!"A"=n!"am" n!['J',x]=(n,map(:(['+'..x]>>" "))"+||") n!x=(n+1,["+---",'|':show n%2++show n,'|':take 1(x%2)++x++x%1]) m=mapAccumL t=transpose