import Control.Applicative
import Control
.Monad (guard
) import Control.Arrow
import Data.List (unfoldr)
. unfoldr ( runKleisli (returnA &&& Kleisli (\x ->
<|> x*3 + 1 <$ guard( x/=1 )
)))
aW1wb3J0IENvbnRyb2wuQXBwbGljYXRpdmUKaW1wb3J0IENvbnRyb2wuTW9uYWQgKGd1YXJkKQppbXBvcnQgQ29udHJvbC5BcnJvdyAKaW1wb3J0IERhdGEuTGlzdCAodW5mb2xkcikKCmcgPSBzdW0gICAuIGZpbHRlciBldmVuCiAgICAgICAgICAuIHVuZm9sZHIgKCBydW5LbGVpc2xpIChyZXR1cm5BICYmJiBLbGVpc2xpIChceCAtPgogICAgICAgICAgICAgICAgICAgeGBkaXZgMiA8JCBndWFyZChldmVuIHgpCiAgICAgICAgICAgICAgIDx8PiB4KjMgKyAxIDwkIGd1YXJkKCB4Lz0xICkKICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgCm1haW4gPSBwcmludCAkIGcgMjAx