{-# LANGUAGE ScopedTypeVariables #-}

import qualified Data.Vector.Unboxed.Mutable as VUM
import Control.Monad

main = do
    n <- readLn :: IO Int
    (dp :: VUM.IOVector Int) <- VUM.replicate (10^5+100) (10^9)
    VUM.write dp 0 0
    let six a = filter (<=a) $! map (6^) [0..6]
    let nine a = filter (<=a) $! map (9^) [0..5]
    forM_ [1..n] $ \i -> do
        forM_ (six i) $ \j -> do
            curr <- VUM.read dp i
            a <- VUM.read dp (i-j)
            VUM.write dp i $! min curr (a+1)
        forM_ (nine i) $ \k -> do
            curr' <- VUM.read dp i
            b <- VUM.read dp (i-k)
            VUM.write dp i $! min curr' (b+1)
    VUM.read dp n >>= print