#include<bits/stdc++.h>
using namespace std;

int n,c;
int w[3][35];
int d[35][35];
int ans;

void dfs(int now,int sum,int col1,int col2){
    for(int j=1;j<c+1;j++){
        if(j!=col1 && j!=col2){
            int tmp=0;
            for(int k=1;k<c+1;k++)tmp += w[now][k]*d[k-1][j-1];
            if(now==0)dfs(1,tmp,j,0);
            if(now==1)dfs(2,sum+tmp,col1,j);
            if(now==2)ans=min(ans,sum+tmp);
        }    
    }
}

int main(){
    cin >> n >> c;
    for(int i=0;i<c;i++)for(int j=0;j<c;j++)cin >> d[i][j];
    int e;
    for(int i=0;i<n;i++)for(int j=0;j<n;j++){
        cin >> e;
        w[(i+j+2)%3][e]++;
    }
    ans=1e9;
    dfs(0,0,0,0);
    cout << ans << endl;
}