main=interact$(>>=f).w.(>>= \x->maybe[x](' ':)$lookup x$zip"ABCDEFGHIJK"$w"`zPz o| od oR }y ` } .z n h| @").g.last f(x:y:z)=" "!x++"#"!y++f z f _="\n" g 'f'="rtYs un`k wjdg xwtyzxqc zwpnua {xlnx_ |xjnz]Gxjl|[Gxj_qrEjo{tivEkpxwewEkqwyayElpwz_zElqvz_zEmpvz_zEmquz_zGxoqtyayGxpptwewGwqqrvivGvsqqrqrGtwop[ |`n] {am^ zck_ yeic||zz wiegz{|x umakxr rr[sss ,t *w (zK "++a++"AAAAFyRy "++unwords(reverse$w a)++"KFz+zFz+z"++"F#"!'v'++"FzFzKHAAF0F,F)F'F&F%F$F$A_xA]zHixxzHkt{yHlkHmk \25k \25l \24n \23r \21x" g 'h'=["oxs{ oxvuIzvsI{vqI|vwx|Buxw|Buxw|Bvww|Bvxw{I}wwx{I|ywxzIpyx mrxx kvKBV|DDDD","Bh|CwyCxwCxwCwyBKBh|CCCC","BV|DDDD"]>>=(++"Bl{ Y| Y{ X{ X{BjzCC oe ohB") g _="q|r{ rzty syty q|r{JJJJJJJJJK s} szd{ rvou pbIg km" a="Nl Sb U^ WZ YV [R \\P ]qhq ^u^u ^wZw _xVx _yTy `yRy" x!y=[y..'}']>>x w=words
Note that non-ascii characters in the above source code will be escaped (such as \x9f).