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

int n, suma;
char mat[1005][1005];
int otrov[1005][1005];
void dfs(int x, int y){

    if(x > 1 && y > 1){
        if(otrov[x-1][y] > otrov[x][y-1]){
            suma += otrov[x][y-1];
            dfs(x, y-1);
        }
        else{
            suma += otrov[x-1][y];
            dfs(x-1, y);
        }

    }
    else if(x > 1 && y == 1){
        suma += otrov[x-1][y];
        dfs(x-1, y);
    }
    else if(x == 1 && y > 1){
        suma += otrov[x][y-1];
        dfs(x, y-1);
    }
    return;

}
int main(){

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> n;

    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= n; j++){
            cin >> mat[i][j];
        }
    }
    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= n; j++){
            cin >> otrov[i][j];
        }
    }
    suma += otrov[n][n];
    dfs(n, n);
    cout << suma << '\n';

    return 0;
}