output_description: If the minimum possible sum of the wrongness of all the squares is x, print x.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N C
      D_{1,1} ... D_{1,C}
      :
      D_{C,1} ... D_{C,C}
      c_{1,1} ... c_{1,N}
      :
      c_{N,1} ... c_{N,N}
attempt: 4 3
  0 12 71
  81 0 53
  14 92 0
  1 1 2 1
  2 1 1 2
  2 2 1 3
  1 1 2 2
  428
  k-mbp:ABC99 kaibe$ cat D.py 
  N,C = map(int,input().split())
  
  D = []
  c = []
  
  for i in range(C):
      D.append(list(map(int,input().split())))
  for i in range(N):
      c.append(list(map(int,input().split()))) 
  
  c1 = []
  c2 = []
  c3 = []
  
  from itertools import product
  
  for i,j in product(range(N),repeat=2):
      if (i+j)%3 == 0:
          c1.append(c[i][j])
      elif (i+j)%3 == 1:
          c2.append(c[i][j])
      else:
          c3.append(c[i][j])
  val=[]
  cnt=[[],[],[]]
  
  
  for j in range(C):
      cnt[0].append(c1.count(j+1))
      cnt[1].append(c2.count(j+1))
      cnt[2].append(c3.count(j+1))
  
  for i in product(range(C),repeat=3):
      dif = 0
      if i[0]!=i[1] and i[1]!=i[2] and i[2]!=i[0]:
          for j in range(C):
              dif += D[j][i[0]] * cnt[0][j]
              dif += D[j][i[1]] * cnt[1][j]
              dif += D[j][i[2]] * cnt[2][j]
          val.append(dif)
  
  print(min(val))
problem_description: Statement
  
  There is a grid with N rows and N columns of squares. Let (i,j) be the square
  at the i-th row from the top and the j-th column from the left.
  
  These squares have to be painted in one of the C colors from Color 1 to Color
  C. Initially, (i,j) is painted in Color c_{i,j}.
  
  We say the grid is a _good_ grid when the following condition is met for all
  i,j,x,y satisfying 1 \leq i,j,x,y \leq N:
  
    * If (i+j) \% 3=(x+y) \% 3, the color of (i,j) and the color of (x,y) are the same.
    * If (i+j) \% 3 \neq (x+y) \% 3, the color of (i,j) and the color of (x,y) are different.
  
  Here, X \% Y represents X modulo Y.
  
  We will repaint zero or more squares so that the grid will be a good grid.
  
  For a square, the _wrongness_ when the color of the square is X before
  repainting and Y after repainting, is D_{X,Y}.
  
  Find the minimum possible sum of the wrongness of all the squares.
samples: [{"input": "2 3\n    0 1 1\n    1 0 1\n    1 4 0\n    1 2\n    3 3", "output": "3\n    \n\n  * Repaint (1,1) to Color 2. The wrongness of (1,1) becomes D_{1,2}=1.\n  * Repaint (1,2) to Color 3. The wrongness of (1,2) becomes D_{2,3}=1.\n  * Repaint (2,2) to Color 1. The wrongness of (2,2) becomes D_{3,1}=1.\n\nIn this case, the sum of the wrongness of all the squares is 3.\n\nNote that D_{i,j} \\neq D_{j,i} is possible.\n\n* * *"}, {"input": "4 3\n    0 12 71\n    81 0 53\n    14 92 0\n    1 1 2 1\n    2 1 1 2\n    2 2 1 3\n    1 1 2 2", "output": "428"}]