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: import math
  import sys
  
  N = int(sys.stdin.readline())
  
  min_leaf_cnt = math.inf
  
  
  class Node:
      def __init__(self, N, cnt, v):
          self.N = N
          self.cnt = cnt
          self.v = v
          self.left = None
          self.right = None
          if self.cnt < min_leaf_cnt:
              self._fill_leaf()
  
      def _fill_leaf(self):
          if self.N >= 6:
              v = math.pow(6, math.floor(math.log(self.N, 6)))
              self.left = Node(self.N - v, self.cnt + 1, v)
          if self.N >= 9:
              v = math.pow(9, math.floor(math.log(self.N, 9)))
              self.right = Node(self.N - v, self.cnt + 1, v)
          if self.left is None and self.right is None:
              global min_leaf_cnt
              if self.cnt + self.N < min_leaf_cnt:
                  min_leaf_cnt = self.cnt + int(self.N)
  
  
  Node(N, 0, 0)
  print(min_leaf_cnt)
  
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"}]