#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n;
int a[20][20];
int f[20][(1<<17)+56];
int main()
{
scanf("%d",&n);
for(int i=0;i<=n;i++)
for(int j=0;j<=n;j++) scanf("%d",&a[i][j]);
for(int k=0;k<=n;k++)
for(int i=0;i<=n;i++)
for(int j=0;j<=n;j++)
if(i!=k && j!=k && i!=j) a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
memset(f,127/3,sizeof(f));
for(int k=1;k<(1<<n+1);k++)
{
for(int i=0;i<=n;i++)
{
if((1<<i) &k)
for(int j=0;j<=n;j++)
{
f[i][k]=min(f[i][k],f[j][k-(1<<i)]+a[j][i]);
}
}
}
printf("%d\n",f[0][(1<<n+1)-1]);
return 0;
}