#include <vector>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <queue>
using namespace std;
typedef pair<int,int> pii;
const int inf = 0x3F3F3F3F;
struct Edge
{
int next;
int inv;
int flow;
int cap;
int cost;
Edge(int next, int inv, int cap, int cost) : next(next), inv(inv), flow(0), cap(cap), cost(cost) {}
};
int n;
vector<Edge> e[400];
int phi[400];
int d[400];
int f[400];
int from[400];
inline void AddEdge(int a, int b, int cap, int cost)
{
e[a].push_back(Edge(b, e[b].size(), cap, cost));
e[b].push_back(Edge(a, e[a].size() - 1, 0, -cost));
}
int A[100][100];
int main()
{
int resultFlow = 0, resultCost = 0;
int N,S;
cin >> N >> S;
for (int i=0;i<N;i++)
for (int j=i;j<N;j++)
cin >> A[i][j];
int source = 0;
int sink = 2*N + S + 1;
for (int i=1;i<=S+N;i++)
AddEdge(0,i,1,0);
for (int i=S+N+1;i<=S+2*N;i++)
AddEdge(i,sink,1,0);
for (int i=1;i<=S;i++)
for (int j=0;j<N;j++)
AddEdge( i, S+N+1+j ,1,A[0][j]);
for (int i=1;i<N;i++)
for (int j=i;j<N;j++)
AddEdge( S+i, S+N+j+1 ,1,A[i][j]);
n = sink+1;
while (resultFlow != N)
{
memset(f,0,sizeof(f));
memset(d,0x3F,sizeof(d));
d[source] = 0;
priority_queue< pii, vector<pii>, greater<pii> > Q;
Q.push( pii(0,source) );
while (!Q.empty()){
pii U = Q.top();
int t = U.first;
int i = U.second;
Q.pop();
if (f[i]) continue;
f[i] = 1;
for(int j = 0; j < e[i].size(); ++j)
if(e[i][j].cap > e[i][j].flow)
{
int a = e[i][j].next;
if(!f[a] && d[a] > d[i] + e[i][j].cost + phi[i] - phi[a])
{
d[a] = d[i] + e[i][j].cost + phi[i] - phi[a];
from[a] = e[i][j].inv;
Q.push( pii( d[a] ,a) );
}
}
}
if(!f[sink]) break;
for(int i = 0; i < n; ++i)
phi[i] += f[i] ? d[i] : d[sink];
int augFlow = inf, augCost = 0;
for(int i = sink; i != source; )
{
int a = e[i][from[i]].next;
int b = e[i][from[i]].inv;
augFlow = min(augFlow, e[a][b].cap - e[a][b].flow);
augCost += e[a][b].cost;
i = a;
}
for(int i = sink; i != source; )
{
int a = e[i][from[i]].next;
int b = e[i][from[i]].inv;
e[a][b].flow += augFlow;
e[i][from[i]].flow -= augFlow;
i = a;
}
resultFlow += augFlow;
resultCost += augFlow * augCost;
}
cout << resultCost << endl;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNsdWRlIDxxdWV1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwogCiAKY29uc3QgaW50IGluZiA9IDB4M0YzRjNGM0Y7CiAKc3RydWN0IEVkZ2UKewogICAgaW50IG5leHQ7CiAgICAgICAgaW50IGludjsgICAgICAgIAogICAgICAgIGludCBmbG93OyAgICAgICAKICAgICAgICBpbnQgY2FwOyAgICAgICAgCiAgICAgICAgaW50IGNvc3Q7ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBFZGdlKGludCBuZXh0LCBpbnQgaW52LCBpbnQgY2FwLCBpbnQgY29zdCkgOiBuZXh0KG5leHQpLCBpbnYoaW52KSwgZmxvdygwKSwgY2FwKGNhcCksIGNvc3QoY29zdCkge30KfTsKIAogICAgICAgIGludCBuOyAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgdmVjdG9yPEVkZ2U+IGVbNDAwXTsKICAgICAgICBpbnQgcGhpWzQwMF07ICAgCiAgICAgICAgaW50IGRbNDAwXTsKICAgICAgICBpbnQgZls0MDBdOwogICAgICAgIGludCBmcm9tWzQwMF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICBpbmxpbmUgdm9pZCBBZGRFZGdlKGludCBhLCBpbnQgYiwgaW50IGNhcCwgaW50IGNvc3QpCiAgICAgICAgewogICAgICAgICAgICAgICAgZVthXS5wdXNoX2JhY2soRWRnZShiLCBlW2JdLnNpemUoKSwgY2FwLCBjb3N0KSk7CiAgICAgICAgICAgICAgICBlW2JdLnB1c2hfYmFjayhFZGdlKGEsIGVbYV0uc2l6ZSgpIC0gMSwgMCwgLWNvc3QpKTsKICAgICAgICB9CiAKICAgICAgICBpbnQgQVsxMDBdWzEwMF07CiAKICAgICAgICBpbnQgbWFpbigpCiAgICAgICAgewogCiAgICAgICAgICAgICAgICBpbnQgcmVzdWx0RmxvdyA9IDAsIHJlc3VsdENvc3QgPSAwOwogICAgICAgICAgICAgICAgaW50IE4sUzsKICAgICAgICAgICAgICAgIGNpbiA+PiBOID4+IFM7CiAgICAgICAgICAgICAgICBmb3IgKGludCBpPTA7aTxOO2krKykKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaj1pO2o8TjtqKyspCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2luID4+IEFbaV1bal07CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGludCBzb3VyY2UgPSAwOwogICAgICAgICAgICAgICAgaW50IHNpbmsgPSAyKk4gKyBTICsgMTsKIAogICAgICAgICAgICAgICAgZm9yIChpbnQgaT0xO2k8PVMrTjtpKyspCiAgICAgICAgICAgICAgICAgICAgICAgIEFkZEVkZ2UoMCxpLDEsMCk7CiAgICAgICAgICAgICAgICBmb3IgKGludCBpPVMrTisxO2k8PVMrMipOO2krKykKICAgICAgICAgICAgICAgICAgICAgICAgQWRkRWRnZShpLHNpbmssMSwwKTsKICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MTtpPD1TO2krKykKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaj0wO2o8TjtqKyspCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkRWRnZSggaSwgUytOKzEraiAsMSxBWzBdW2pdKTsKICAgICAgICAgICAgICAgIGZvciAoaW50IGk9MTtpPE47aSsrKQogICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBqPWk7ajxOO2orKykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBZGRFZGdlKCBTK2ksIFMrTitqKzEgLDEsQVtpXVtqXSk7CiAgICAgICAgICAgICAgICBuID0gc2luaysxOwogCiAgICAgICAgICAgICAgICB3aGlsZSAocmVzdWx0RmxvdyAhPSBOKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBtZW1zZXQoZiwwLHNpemVvZihmKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIG1lbXNldChkLDB4M0Ysc2l6ZW9mKGQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgZFtzb3VyY2VdID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHlfcXVldWU8IHBpaSwgdmVjdG9yPHBpaT4sIGdyZWF0ZXI8cGlpPiA+IFE7CiAgICAgICAgICAgICAgICAgICAgICAgIFEucHVzaCggcGlpKDAsc291cmNlKSApOwogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIVEuZW1wdHkoKSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlpIFUgPSBRLnRvcCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0ID0gVS5maXJzdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaSA9IFUuc2Vjb25kOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFEucG9wKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZbaV0pIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZbaV0gPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaiA9IDA7IGogPCBlW2ldLnNpemUoKTsgKytqKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZVtpXVtqXS5jYXAgPiBlW2ldW2pdLmZsb3cpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhID0gZVtpXVtqXS5uZXh0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZighZlthXSAmJiBkW2FdID4gZFtpXSArIGVbaV1bal0uY29zdCArIHBoaVtpXSAtIHBoaVthXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRbYV0gPSBkW2ldICsgZVtpXVtqXS5jb3N0ICsgcGhpW2ldIC0gcGhpW2FdOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21bYV0gPSBlW2ldW2pdLmludjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRLnB1c2goIHBpaSggZFthXSAsYSkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAKIAogICAgICAgICAgICAgICAgICAgICAgICBpZighZltzaW5rXSkgYnJlYWs7CiAKICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG47ICsraSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaGlbaV0gKz0gZltpXSA/IGRbaV0gOiBkW3NpbmtdOwogCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBhdWdGbG93ID0gaW5mLCBhdWdDb3N0ID0gMDsKIAogICAgICAgICAgICAgICAgICAgICAgICBmb3IoaW50IGkgPSBzaW5rOyBpICE9IHNvdXJjZTsgKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGEgPSBlW2ldW2Zyb21baV1dLm5leHQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGIgPSBlW2ldW2Zyb21baV1dLmludjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWdGbG93ID0gbWluKGF1Z0Zsb3csIGVbYV1bYl0uY2FwIC0gZVthXVtiXS5mbG93KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdWdDb3N0ICs9IGVbYV1bYl0uY29zdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpID0gYTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaSA9IHNpbms7IGkgIT0gc291cmNlOyApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYSA9IGVbaV1bZnJvbVtpXV0ubmV4dDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYiA9IGVbaV1bZnJvbVtpXV0uaW52OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVbYV1bYl0uZmxvdyArPSBhdWdGbG93OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVbaV1bZnJvbVtpXV0uZmxvdyAtPSBhdWdGbG93OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBhOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0RmxvdyArPSBhdWdGbG93OwogICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRDb3N0ICs9IGF1Z0Zsb3cgKiBhdWdDb3N0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY291dCA8PCByZXN1bHRDb3N0IDw8IGVuZGw7CiAgICAgICAgfQ==