#include<bits/stdc++.h>
using namespace std;
int dis[100001],ans=0;
bool vis[10001];
vector<int >g[10001],w[1000001];
int main()
{
int n,m;
cin >> n >> m;
for(int i = 1;i<=m;i++)
{
for(int j = 1;j<=m;j++)
{
int x;
cin >> x;
if(x!=0)
{
g[i].push_back(j);
w[i].push_back(x);
g[j].push_back(i);
w[j].push_back(x);
}
else
{
g[i].push_back(j);
w[i].push_back(n);
g[j].push_back(i);
w[j].push_back(n);
}
}
}
memset(dis,0x3f,sizeof(dis));
dis[1]=n;
for(int k=1;k<=m;k++)
{
int u,minn=1e9;
for(int i = 1;i<=m;i++)
{
if(!vis[i]&&dis[i]<minn)
{
minn=dis[i];
u=i;
}
}
vis[u]=1;
ans+=dis[u];
for(int i = 0;i<g[u].size();i++)
{
int v=g[u][i];
dis[v]=min(dis[v],w[u][i]);
}
}
for(int i =1;i<=n;i++)
{
if(!vis[i]) ans+=n;
}
cout << ans;
return 0;
}