{-# LANGUAGE TupleSections #-}
import Control.Applicative
import Control
.Monad (guard
) import Data.List (unfoldr)
. unfoldr
( \x
-> fmap(x
,) $ <|> x*3 + 1 <$ guard( x/=1 )
)
ey0jIExBTkdVQUdFIFR1cGxlU2VjdGlvbnMgICAgICMtfQoKaW1wb3J0IENvbnRyb2wuQXBwbGljYXRpdmUKaW1wb3J0IENvbnRyb2wuTW9uYWQgKGd1YXJkKQppbXBvcnQgRGF0YS5MaXN0ICh1bmZvbGRyKQoKZyA9IHN1bSAKICAgICAgICAgIC4gZmlsdGVyIGV2ZW4KICAgICAgICAgIC4gdW5mb2xkciAoIFx4IC0+IGZtYXAoeCwpICQKICAgICAgICAgICAgICAgICAgIHhgZGl2YDIgPCQgZ3VhcmQoZXZlbiB4KQogICAgICAgICAgICAgICA8fD4geCozICsgMSA8JCBndWFyZCggeC89MSApCiAgICAgICAgICAgICApCiAgICAgICAgICAgICAKbWFpbiA9IHByaW50ICQgZyAyMDE=