/*#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include <stdio.h>
struct school
{
int student;
int apple;
};
int main()
{
int n,i,sum=0;
struct school st[101]={0};
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&st[i].student);
scanf("%d",&st[i].apple);
sum+=st[i].apple-(st[i].apple/st[i].student*st[i].student);
}
printf("%d",sum);
}
*/
/*
#include <stdio.h>
int rec(int n)
{
if(n==1){
return 1;
}
else if(n==2){
return 2;
}
return rec(n-1)+rec(n-2);
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",rec(n));
}
*/
/*
#include <stdio.h>
int main()
{
int n[9],i;
for(i=0;i<8;i++){
scanf("%d",&n[i]);
}
for(i=0;;i++){
if(n[i]==0){
break;
}
}
}
*/
/*
#include <stdio.h>
int main()
{
int n,j,i,q[1000],m[1000];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&m[i]);
}
scanf("%d",&m);
for(j=0;j<m;j++){
scanf("%d",&q[j]);
if(q[j]==m[i]){
printf("%d ",i);
}
else{
printf("-1 ");
}
}
}
*/
#include <stdio.h>
int main()
{
int n,i,j,min,sum=0,h[100][100],p_mi,mi,re_min;
scanf("%d",&n);
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%d",&h[i][j]);
}
}
// red start
sum = h[0][0];
p_mi=0;
for(i = 1; i<n ; i++)
{
min = 1000000;
for(j=0; j<n; j++)
{
if(p_mi!=j &&h[i][j]<min)
{
min = h[i][j];
mi=j;
}
}
p_mi=j;
sum+=min;
}
re_min=sum;
//green
sum=h[0][1];
p_mi=1;
sum+=min;
if(re_min>sum)
{
re_min=sum;
}
//blue
sum=h[0][2];
p_mi=2;
sum+=min;
if(re_min>sum)
{
re_min=sum;
}
printf("%d",re_min);
}