{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE BangPatterns #-}

import Control.Applicative
import Control.Monad
import Control.Arrow
import Data.List
import Data.Maybe
import Data.Char
import qualified Data.ByteString.Char8 as B
import Text.Printf
import Debug.Trace

import Data.Ratio

readInt = ( readLn :: IO Int )
readInts = map ( fst . fromJust . B.readInt ) . B.words <$> B.getLine

which a b f = if f then a else b
mp [ a, b ] = ( a, b )

main = do
	n <- readInt
	head $ do
		a <- [ 1 .. 3500 ]
		b <- [ 1 .. 3500 ]
		let
			-- 4/n - 1/a - a/b
			bunbo = 4 * a * b - n * b - n * a
			bunshi = n * a * b 
		guard $ 0 < bunbo
		guard $ bunshi `mod` bunbo == 0
-- 		return $ n * a * b
		return $ printf "%d %d %d\n" a b ( bunshi `div` bunbo )