import Data.Char import qualified Data.ByteString.Char8 as B sabarusator :: B.ByteString -> B.ByteString sabarusator s = B.concat [ B.concat [ B.pack l , B.pack $ if null l then "~\n" else "...\n" , B.dropWhile isSpace s ] | (l, s) <- zip (iterate (')':) []) (B.split '.' s) ] main = B.interact sabarusator