collatz :: Integral a => a -> [a]
collatz 1 = 1:[]
collatz x
	| even x = x:collatz (quot x 2)
	| odd x  = x:collatz (3*x + 1)

main = do
	putStrLn . show $ maximum $ zip (map (length . collatz) [1..1000000]) [1..]
