import sys
N, K=
map(
int,
input().split())
factory=[[
0]*K
for _
in
range(N)]
mvtime=[[[
0]*K
for _
in
range(K)]
for _
in
range(N)]
for i
in
range(N
-1):
temp=
list(
map(
int,
input().split()))
for j
in
range(K):
factory[i][j]=temp[j]
index=K
for p
in
range(K):
for q
in
range(K):
if p==q:
continue
mvtime[i][p][q]=temp[index]
index+=
1
finish=
list(
map(
int,
input().split()))
for i
in
range(K):
factory[
-1][i]=finish[i]
time=[[
0]*K
for _
in
range(N)]
for i
in
range(K):
time[
0][i]=factory[
0][i]
for i
in
range(
1,N):
for j
in
range(K):
timelist=[]
for jj
in
range(K):
#j to jj
if j==jj:
timelist.append(time[i
-1][j])
else:
timelist.append(time[i
-1][jj]+mvtime[i
-1][jj][j])
# print("i,j:",i, j)
# print("timelist:",timelist)
time[i][j]=
min(timelist)+factory[i][j]
# print(min(time[-1]))
print(
min(time[
-1]))