Joisino the magical girl has decided to turn every single digit that exists on this world into 1.  Rewriting a digit i with j (0≤i,j≤9) costs c_{i,j} MP (Magic Points).  She is now standing before a wall. The wall is divided into HW squares in H rows and W columns, and at least one square contains a digit between 0 and 9 (inclusive).  You are given A_{i,j} that describes the square at the i-th row from the top and j-th column from the left, as follows:    * If A_{i,j}≠-1, the square contains a digit A_{i,j}.   * If A_{i,j}=-1, the square does not contain a digit.  Find the minimum total amount of MP required to turn every digit on this wall into 1 in the end.
def dijkstra(s,n,cost):
  d=[float('inf')]*n
  visited=[0]*n
  d[s]=0
  while True:
    v=-1
    for i in range(n-1,-1,-1):
      if visited[i]==0 and v==-1:
        v=i
      elif visited[i]==0 and d[i]<d[v]:
        v=i
    if v==-1:
      break
    visited[v]=1
    for j in range(n-1,-1,-1):
      d[j]=min(d[j],d[v]+cost[j][v])
  return d

h,w=map(int,input().split())
c=[list(map(int,input().split())) for _ in range(10)]
a=[list(map(int,input().split())) for _ in range(h)]
cost=dijkstra(1,10,c)
ans=0
for i in range(h):
  for j in range(w):
    ans+=cost[a[i][j]]
print(ans)
def dijkstra(s,n,cost):
  d=[float('inf')]*n
  visited=[0]*n
  d[s]=0
  while True:
    v=-1
    for i in range(n-1,-1,-1):
      if visited[i]==0 and v==-1:
        v=i
      elif visited[i]==0 and d[i]<d[v]:
        v=i
    if v==-1:
      break
    visited[v]=1
    for j in range(n-1,-1,-1):
      d[j]=min(d[j],d[v]+cost[j][v])
  return d

h,w=map(int,input().split())
c=[list(map(int,input().split())) for _ in range(10)]
a=[list(map(int,input().split())) for _ in range(h)]
cost=dijkstra(1,10,c)
ans=0
for i in range(h):
  for j in range(w):
    ans+=(cost[a[i][j]] if a[i][j]>-1 else 0)
print(ans)