#include<bits/stdc++.h>
using namespace std;
const int inf=0x7f7f7f7f;
int maxn=0x7f;
int n,m,f[105][105],minn[105],ans,index;
bool vis[10005];
void primlll(){
for(int i=1;i<=n;i++){
for(int k=1;k<=n;k++){
if(minn[k]<maxn&&!vis[k]){
index=k,maxn=minn[k];
}
}
maxn=0x7f;
vis[index]=1;
ans+=minn[index];
for(int j=1;j<=n;j++){
if(vis[j]!=1&&f[index][j]<minn[j]){
minn[j]=f[index][j];
}
}
}
}
int main(){
cin>>n;
int x,y,z;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>f[i][j];
}
}
memset(minn,0x7f,sizeof(minn));
minn[1]=0;
primlll();
cout<<ans;
return 0;
}