1 #include<iostream>
2 #include<cstdio>
3 using namespace std;
4 const int N=21;
5 int map[N][N];
6 int vis[N];
7 int ans=9999999;
8 int tot=1;
9 int n;
10 void dfs(int now,int w)
11 {
12 if(w>ans)return ;
13 if(tot==n&&w+map[now][1]<ans)
14 {
15 ans=w+map[now][1];
16 }
17 for(int i=1;i<=n;i++)
18 {
19 if(vis[i]==0)
20 {
21 tot++;
22 vis[i]=1;
23 dfs(i,w+map[now][i]);
24 vis[i]=0;
25 tot--;
26 }
27 }
28 }
29 int main()
30 {
31 cin>>n;
32 for(int i=1;i<=n;i++)
33 {
34 for(int j=1;j<=n;j++)
35 {
36 cin>>map[i][j];
37 }
38 }
39 vis[1]=1;
40 dfs(1,0);
41 cout<<ans;
42 }