#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 5e2 + 5;
long long n,a[MaxN];
vector<pair<long long,pair<long long,long long>>> pr;
struct DSU
{
long long lab[MaxN];
void init()
{
for (long long i=0; i<=n; i++)
{
lab[i]=-1;
}
}
long long get_root(long long u)
{
if(lab[u]<0) return u;
return lab[u]=get_root(lab[u]);
}
void unite(long long u , long long v)
{
long long x = get_root(u), y=get_root(v);
if(x==y)
{
return;
}
if(lab[x]>lab[y]) swap(x,y);
lab[x]+=lab[y];
lab[y]=x;
return;
}
bool check(long long u, long long v)
{
return get_root(u)==get_root(v);
}
long long get_size(long long u)
{
return -lab[get_root(u)];
}
};
DSU dsu;
void input()
{
cin>>n;
for(long long i=1;i<=n;i++)
{
cin>>a[i];
pr.push_back({a[i],{0,i}});
}
for(long long i=1;i<=n;i++)
{
for(long long j=1;j<=n;j++)
{
long long val;
cin>>val;
if(i!=j)
{
pr.push_back({val,{i,j}});
}
}
}
}
void solve()
{
dsu.init();
sort(pr.begin(),pr.end());
long long ans=0;
for(long long i=0;i<pr.size();i++)
{
long long w=pr[i].first;
long long u=pr[i].second.first;
long long v=pr[i].second.second;
if(u==v) continue;
if(!dsu.check(u,v))
{
dsu.unite(u,v);
ans+=w;
}
}
cout<<ans;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBsb25nIGxvbmcgTWF4TiA9IDVlMiArIDU7Cgpsb25nIGxvbmcgbixhW01heE5dOwoKdmVjdG9yPHBhaXI8bG9uZyBsb25nLHBhaXI8bG9uZyBsb25nLGxvbmcgbG9uZz4+PiBwcjsKCnN0cnVjdCBEU1UKewogICAgbG9uZyBsb25nIGxhYltNYXhOXTsKICAgIHZvaWQgaW5pdCgpCiAgICB7CiAgICAgICAgZm9yIChsb25nIGxvbmcgaT0wOyBpPD1uOyBpKyspCiAgICAgICAgewogICAgICAgICAgICBsYWJbaV09LTE7CiAgICAgICAgfQogICAgfQogICAgbG9uZyBsb25nIGdldF9yb290KGxvbmcgbG9uZyB1KQogICAgewogICAgICAgIGlmKGxhYlt1XTwwKSByZXR1cm4gdTsKICAgICAgICByZXR1cm4gbGFiW3VdPWdldF9yb290KGxhYlt1XSk7CiAgICB9CiAgICB2b2lkIHVuaXRlKGxvbmcgbG9uZyB1ICwgbG9uZyBsb25nIHYpCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHggPSBnZXRfcm9vdCh1KSwgeT1nZXRfcm9vdCh2KTsKICAgICAgICBpZih4PT15KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZihsYWJbeF0+bGFiW3ldKSBzd2FwKHgseSk7CiAgICAgICAgbGFiW3hdKz1sYWJbeV07CiAgICAgICAgbGFiW3ldPXg7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgYm9vbCBjaGVjayhsb25nIGxvbmcgdSwgbG9uZyBsb25nIHYpCiAgICB7CiAgICAgICAgcmV0dXJuIGdldF9yb290KHUpPT1nZXRfcm9vdCh2KTsKICAgIH0KICAgIGxvbmcgbG9uZyBnZXRfc2l6ZShsb25nIGxvbmcgdSkKICAgIHsKICAgICAgICByZXR1cm4gLWxhYltnZXRfcm9vdCh1KV07CiAgICB9Cn07CgpEU1UgZHN1OwoKdm9pZCBpbnB1dCgpCnsKICAgIGNpbj4+bjsKCiAgICBmb3IobG9uZyBsb25nIGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBjaW4+PmFbaV07CgogICAgICAgIHByLnB1c2hfYmFjayh7YVtpXSx7MCxpfX0pOwogICAgfQoKICAgIGZvcihsb25nIGxvbmcgaT0xO2k8PW47aSsrKQogICAgewogICAgICAgIGZvcihsb25nIGxvbmcgaj0xO2o8PW47aisrKQogICAgICAgIHsKICAgICAgICAgICAgbG9uZyBsb25nIHZhbDsKICAgICAgICAgICAgY2luPj52YWw7CgogICAgICAgICAgICBpZihpIT1qKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBwci5wdXNoX2JhY2soe3ZhbCx7aSxqfX0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIHNvbHZlKCkKewogICAgZHN1LmluaXQoKTsKCiAgICBzb3J0KHByLmJlZ2luKCkscHIuZW5kKCkpOwoKICAgIGxvbmcgbG9uZyBhbnM9MDsKCiAgICBmb3IobG9uZyBsb25nIGk9MDtpPHByLnNpemUoKTtpKyspCiAgICB7CiAgICAgICAgbG9uZyBsb25nIHc9cHJbaV0uZmlyc3Q7CiAgICAgICAgbG9uZyBsb25nIHU9cHJbaV0uc2Vjb25kLmZpcnN0OwogICAgICAgIGxvbmcgbG9uZyB2PXByW2ldLnNlY29uZC5zZWNvbmQ7CiAgICAgICAgaWYodT09dikgY29udGludWU7CiAgICAgICAgaWYoIWRzdS5jaGVjayh1LHYpKQogICAgICAgIHsKICAgICAgICAgICAgZHN1LnVuaXRlKHUsdik7CiAgICAgICAgICAgIGFucys9dzsKICAgICAgICB9CiAgICB9CgogICAgY291dDw8YW5zOwp9CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwoKICAgIGlucHV0KCk7CiAgICBzb2x2ZSgpOwp9