018: solve in haskell
020: solve in haskell