1 #include<cstdio>
2 #include<cstring>
3 using namespace std;
4 #define N 51
5 int n,map[N][N],m=0x7fffffff;
6 bool vis[N];
7 void dfs(int p,int d,int s){
8 if(d==n)
9 {
10 if(s+map[p][1]<m)m=s+map[p][1];
11 return;
12 }
13 for(int r=1;r<=n;r++)
14 {
15 if(!vis[r]&&map[p][r]>0)
16 {
17 if(s+map[p][r]>=m)break;
18 vis[r]=1;
19 dfs(r,d+1,s+map[p][r]);
20 vis[r]=0;
21 }
22 }
23 }
24 int main(){
25 scanf("%d",&n);
26 for(int i=1;i<=n;i++)
27 for(int j=1;j<=n;j++)
28 scanf("%d",&map[i][j]);
29 vis[1]=1;
30 dfs(1,1,0);
31 printf("%d",m);
32 return 0;
33 }