#include <bits/stdc++.h>
#define rep(i,l,r) for(int i=(l);i<=(r);++i)
using namespace std;
typedef long long ll;
const int N=520;
struct Edge
{
int u,v,w;
bool operator<(Edge& A){return (this->w)<A.w;}
};
int a,n;
vector<Edge> linker;
int fa[N];
int find(int x)
{
if(fa[x]==x)
return x;
return fa[x]=find(fa[x]);
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.in","r",stdin);
freopen("out.out","w",stdout);
#endif
cin>>a>>n;
rep(i,1,n)
{
linker.push_back({0,i,a});
fa[i]=i;
}
rep(i,1,n)
rep(j,1,n)
{
int k;
cin>>k;
if(i!=j)
linker.push_back({i,j,k});
}
sort(linker.begin(),linker.back());
int len=linker.size();
int ans=0;
for(auto i:linker)
{
int x=i.u;
int y=i.v;
int fx=find(x);
int fy=find(y);
if(fx!=fy)
{
fa[x]=y;
ans+=i.w;
}
}
cout<<ans;
}
说是sort的错误,为啥>