{-# LANGUAGE BangPatterns, MultiWayIf #-}

import Control.Applicative
import Control.Exception (assert)
import Control.Monad
import Data.List
import Debug.Trace (traceShow)

solve :: Int -> (Int, Int, Int)
solve n = head $ do
    x <- [1 .. 3500]
    y <- [1 .. 3500]
    let p = n * x * y
    let q = 4 * x * y - x * n - y * n
    guard $ q > 0
    let (z, r) = p `divMod` q
    guard $ r == 0
    guard $ 4 * x * y * z == n * (x * y + y * z + z * x)
    return (x, y, z)

main :: IO ()
main = do
    n <- readLn :: IO Int
    let (a, b, c) = solve n
    putStrLn . unwords $ fmap show [a, b, c]