output_description: If at least x operations are required to withdraw exactly N yen in total,
  print x.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
attempt: n_max = 100000
  
  bs = [(6**i, 6) for i in range(1, 10)]
  bs.extend([(9**i, 9) for i in range(1, 10)])
  bs = list(sorted(filter(lambda x: x[0] <= n_max, bs)))
  bms = []
  s = 5
  for b, i in bs:
      s += b * (i - 1)
      bms.append((b, i, s))
  
  # print(bs)
  # print(bms, len(bms))
  
  # m = 44852
  m = int(input())
  
  stack = [(m, 0, len(bms) - 1)]
  # print("search start!")
  result = 10000
  while stack:
      m, n, bms_i = stack.pop()
      b, i, s = bms[bms_i]
      # print(m, n, bms_i, b, i, s)
  
      if n > result:
          #        print("skip!", m, n, bms_i)
          continue
      if bms_i < 0:
          if m < 6 and result > m + n:
              result = m + n
          #            print('get result!', result)
          continue
  
      for j in range(0, i):
          next_m = m - b * j
          if next_m > 0 and n + j < result:
              stack.append((next_m, n + j, bms_i - 1))
  
  print(result)
  
problem_description: Statement
  
  To make it difficult to withdraw money, a certain bank allows its customers to
  withdraw only one of the following amounts in one operation:
  
    * 1 yen (the currency of Japan)
  
    * 6 yen, 6^2(=36) yen, 6^3(=216) yen, ...
  
    * 9 yen, 9^2(=81) yen, 9^3(=729) yen, ...
  
  At least how many operations are required to withdraw exactly N yen in total?
  
  It is not allowed to re-deposit the money you withdrew.
samples: [{"input": "127", "output": "4\n    \n\nBy withdrawing 1 yen, 9 yen, 36(=6^2) yen and 81(=9^2) yen, we can withdraw\n127 yen in four operations.\n\n* * *"}, {"input": "3", "output": "3\n    \n\nBy withdrawing 1 yen three times, we can withdraw 3 yen in three operations.\n\n* * *"}, {"input": "44852", "output": "16"}]