import Data.Bits main = readLn >>= putStrLn . unwords . map show . solve solve :: Int -> [Int] solve n | popCount n == 1 = [-1,-1,-1] | otherwise = [n, xor n x, x] where x = head $ filter ((0 /=) . (n .&.)) $ iterate (flip shiftL 1) 1