#include<bits/stdc++.h>
const int MAX=0x3f3f3f3f;
using namespace std;
int main()
{
int n,w[21][21];
scanf("%d",&n);
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) {scanf("%d",&w[i][j]); if(!w[i][j]) w[i][j]=MAX;}
for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) for(int k=1;k<=n;k++) if(w[j][k]>=w[j][i]+w[i][k]) w[j][k]=w[j][i]+w[i][k];
if(w[1][n]!=MAX) printf("%d",w[1][n]);
else printf("-1");
return 0;
}