#include <bits/stdc++.h>
using namespace std;
#define maxn 1000
int n;
int cc;
int bestc=0x3f3f3f;
int c[maxn][maxn];
int x[maxn];
void BackTrack(int i)
{
if(i==n)
{
if(cc+c[i][x[i]]<bestc)
{
bestc=cc+c[i][x[i]];
}
}
else
{
for(int j=i;j<=n;j++)
{
if(cc+c[i][x[j]]<bestc)
{
swap(x[i],x[j]);
cc+=c[i][x[i]];
BackTrack(i+1);
cc-=c[i][x[i]];
swap(x[i],x[j]);
}
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
x[i]=i;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>c[i][j];
}
}
BackTrack(1);
cout<<bestc;
}