#include<cstdio>
#include<algorithm>
using namespace std;
int map[10][10];
int h, w;

void floyd(){
    int i, j, k;
    for(k = 0; k<10; k++){
        for(i = 0; i<10; i++){
            for(j = 0; j<10; j++){
                map[i][j] = min(map[i][j], map[i][k] + map[k][j]);
            }
        }
    }
}

int main(){
    int i, j, a;
    while(scanf("%d%d",&h, &w,h&&w)){
        for(i = 0; i<10; i++){
            for(j = 0; j<10; j++){
                scanf("%d",&map[i][j]);
            }
        }
        floyd();
        int ans = 0;
        for(i = 0; i<h; i++){
            for(j = 0; j<w; j++){
                scanf("%d",&a);
                if(a!=-1 && a!=1){
                    ans += map[a][1];
                }
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}
