(port-fold(^(s\)(let*(`string->list,length(n(max,`s,`\))(! reverse!),!'(^x(take(!,x,x)n))(\((#/(.*?)h?o?$/(fold(^(c d q)#`",q,c,d")""'`s'`\))1)))(print\)\))"h"read-line)