import Control.Applicative ((<$>)) import Data.List (intercalate) main :: IO () main = solve <$> readLn >>= mapM_ putStrLn solve :: Int -> [String] solve 0 = ["1", "0"] solve 1 = ["2", "1 1"] solve k = let l = g 0 k in [show . length $ l, intercalate " " . map show $ l] where f x = let y = ceiling . sqrt . (* 2) . fromIntegral $ x in if 2 * x == y * (y-1) then Just y else Nothing g z x = case f x of Just i -> replicate z 0 ++ replicate i 1 Nothing -> g (z+1) (x `div` 2)