#include<stdio.h>
typedef struct
{int formvex,endvex;
int length;}edge;
int dist[100][100];
edge T[99];
int N,len;
PRIM()
{
int j,k,m,d,v,min,max=10000;
edge e;
for(j=1;j<N;j++)
{
T[j-1].formvex=1;
T[j-1].endvex=j+1;
T[j-1].length=dist[0][j];
}
for(k=0;k<N-1;k++)
{
min=max;
for(j=k;j<N-1;j++)
if(T[j].length<min)
{
min=T[j].length;
m=j;
}
e=T[m];T[m]=T[k];T[k]=e;
len+=T[k].length;
v=T[k].endvex;
for(j=k+1;j<N-1;j++)
{
d=dist[v-1][T[j].endvex-1];
if(d<T[j].length)
{
T[j].length=d;
T[j].formvex=v;
}
}
}
return len;
}
int main()
{
int x,y,Len;
while(scanf("%d",&N)==1)
{len=0;
for(x=0;x<N;x++)
for(y=0;y<N;y++)
scanf("%d",&dist[x][y]);
Len=PRIM();
printf("%d/n",Len);
}
return 0;
}