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: from collections import defaultdict
  
  N, C = map(int, input().split())
  D = [[int(i) for i in input().split()] for j in range(C)]
  co = [[int(i) for i in input().split()] for j in range(N)]
  d0 = defaultdict(int)
  d1 = defaultdict(int)
  d2 = defaultdict(int)
  for i in range(N):
      for j in range(N):
          if (j + i) % 3 == 0:
              d0[co[j][i]] += 1
          elif (j + i) % 3 == 1:
              d1[co[j][i]] += 1
          else:
              d2[co[j][i]] += 1
  A0 = []  # i色に帰るのに必要な違和感
  A1 = []
  A2 = []
  for i in range(C):
      iwa = 0
      for s in d0.keys():
          iwa += D[s - 1][i - 1] * d0[s]
      A0.append([iwa, i])
  for i in range(C):
      iwa = 0
      for s in d1.keys():
          iwa += D[s - 1][i - 1] * d1[s]
      A1.append([iwa, i])
  for i in range(C):
      iwa = 0
      for s in d2.keys():
          iwa += D[s - 1][i - 1] * d2[s]
      A2.append([iwa, i])
  
  A0.sort()
  A1.sort()
  A2.sort()
  B = [[] for i in range(3)]
  for i in range(3):
      B[0].append(A0[i])
  for i in range(3):
      B[1].append(A1[i])
  for i in range(3):
      B[2].append(A2[i])
  ans = []
  for i in range(3):
      for j in range(3):
          for k in range(3):
              if B[0][i][1] == B[1][j][1]:
                  continue
              if B[0][i][1] == B[2][k][1]:
                  continue
              if B[1][j][1] == B[2][k][1]:
                  continue
              ans.append(B[0][i][0] + B[1][j][0] + B[2][k][0])
  print(min(ans))
  
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"}]