#include <bits/stdc++.h>
using namespace std;
int citycost(int u,int f,int v)
{
if(u==v)
{
return f;
}
else
{
if(f<=1000)
{
return f*3;
}
else if(f>1000)
{
return 3000+(f-1000)*2;
}
}
}
int main()
{
int n,m,k;
cin>>n>>m>>k;
int q[n][m];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>q[i][j];
}
}
int c[k][n];
for(int i=0;i<k;i++)
{
for(int j=0;j<n;j++)
{
cin>>c[i][j];
}
}
int cost[k]={0},citytotalcost[m][m]={0};
for(int i=0;i<k;i++)
{
for(int j=0;j<m;j++)
{
for(int r=0;r<m;r++)
{
citytotalcost[j][r]=0;
}
}
for(int j=0;j<m;j++)
{
for(int r=0;r<m;r++)
{
for(int a=0;a<n;a++)
{
for(int b=0;b<m;b++)
{
if(c[i][a]==j && b==r)
{
citytotalcost[j][r]+=q[a][b];
}
}
}
}
}
/*for(int j=0;j<m;j++)
{
for(int r=0;r<m;r++)
{
cout<<citytotalcost[j][r]<<" ";
}
cout<<endl;
}
*/
for(int j=0;j<m;j++)
{
for(int r=0;r<m;r++)
{
cost[i]+=citycost(j,citytotalcost[j][r],r);
}
}
}
sort(cost,cost+k);
/*for(int i=0;i<k;i++)
{
cout<<cost[i]<<" ";
}
*/
cout<<cost[0];
return 0;
}