#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

typedef pair<int ,int > PII;

const int N = 110;

int n; 
int g[N][N];
int d[N][N];
int x1,x2,y11,y2;

int dx[4]={1,0,-1,0}; int dy[4]={0,1,0,-1};

int bfs()
{
	queue<PII> q;
	
	q.push({x1,y11});
	
	memset(d,0x3f,sizeof d);
	
	d[x1][y11]=0;
	
	while(q.size())
	{
		auto t=q.front();
		q.pop();
		
		for(int k=0;k<4;k++)
		{
			int a=t.first+dx[k];
			int b=t.second+dy[k];
			
			if(a<1||a>n||b<1||b>n) continue;
			
			if(d[a][b]>d[t.first][t.second]+g[a][b])
			{
				d[a][b]=d[t.first][t.second]+g[a][b];
				q.push({a,b});
			}
		}
	}	
	
	return d[x2][y2];
}


int main()
{
    while(cin>>n)
    {
    for(int i=1;i<=n;i++)
    	for(int j=1;j<=n;j++)
    		{
    			cin>>g[i][j];
    			if(g[i][j]==-1) 
    			{
    				x1=i;
    				y11=j;
    				g[i][j]=0;
				}else if(g[i][j]==-2)
				{
					x2=i;
					y2=j;
					g[i][j]=0;
				}
			}
			
		cout<<bfs()<<'\n'; 
    }
    return 0;
}