// SIGMA BOY hihihihihihihi
 
#define se second
#define fi first
#define pb push_back
#define pob pop_back
#define bitebi __builtin_popcountll
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll,ll> pll;
 
const ll oo = 1e18;
 
int n, K;
int c[25][25];
int appear[25];
int x[25];
int load;
ll best = oo, f = 0;
ll cmin = oo;
 
void Try(int k) {
    for (int v = 1; v <= 2 * n; v++) {
        if (!appear[v]) {
            // Kiểm tra hợp lệ
            if (v <= n) {
                if (load < K) { // điểm đón
                    appear[v] = 1;
                    load++;
                    f += c[x[k-1]][v];
                    if (f + (2*n - k + 1) * cmin < best) {
                        x[k] = v;
                        if (k == 2 * n) {
                            best = min(best, f + c[v][0]);
                        } else Try(k + 1);
                    }
                    f -= c[x[k-1]][v];
                    load--;
                    appear[v] = 0;
                }
            } else {
                int u = v - n;
                if (appear[u]) { // chỉ trả nếu đã đón
                    appear[v] = 1;
                    load--;
                    f += c[x[k-1]][v];
                    if (f + (2*n - k + 1) * cmin < best) {
                        x[k] = v;
                        if (k == 2 * n) {
                            best = min(best, f + c[v][0]);
                        } else Try(k + 1);
                    }
                    f -= c[x[k-1]][v];
                    load++;
                    appear[v] = 0;
                }
            }
        }
    }
}
 
void Do() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
 
    cin >> n >> K;
    for (int i = 0; i <= 2*n; i++)
        for (int j = 0; j <= 2*n; j++) {
            cin >> c[i][j];
            if (i != j) cmin = min(cmin, (ll)c[i][j]);
        }
 
    f = 0;
    best = oo;
    load = 0;
    memset(appear, 0, sizeof(appear));
 
    x[0] = 0; // start from depot
    Try(1);
 
    cout << best << "\n";
}
 
signed main() {
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define task "test"
    if (fopen(task".inp", "r")) {
        freopen(task".inp", "r", stdin);
        freopen(task".out", "w", stdout);
    }
    int ntest = 1;
    while (ntest--) Do();
 
    cerr << "\nTime elapsed: " << 1000 * clock() / CLOCKS_PER_SEC << "ms\n";
}
 
				Ly8gU0lHTUEgQk9ZIGhpaGloaWhpaGloaWhpCgojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgcG9iIHBvcF9iYWNrCiNkZWZpbmUgYml0ZWJpIF9fYnVpbHRpbl9wb3Bjb3VudGxsCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiBsb25nIGRvdWJsZSBsZDsKdHlwZWRlZiBwYWlyPGxsLGxsPiBwbGw7Cgpjb25zdCBsbCBvbyA9IDFlMTg7CgppbnQgbiwgSzsKaW50IGNbMjVdWzI1XTsKaW50IGFwcGVhclsyNV07CmludCB4WzI1XTsKaW50IGxvYWQ7CmxsIGJlc3QgPSBvbywgZiA9IDA7CmxsIGNtaW4gPSBvbzsKCnZvaWQgVHJ5KGludCBrKSB7CiAgICBmb3IgKGludCB2ID0gMTsgdiA8PSAyICogbjsgdisrKSB7CiAgICAgICAgaWYgKCFhcHBlYXJbdl0pIHsKICAgICAgICAgICAgLy8gS2nhu4NtIHRyYSBo4bujcCBs4buHCiAgICAgICAgICAgIGlmICh2IDw9IG4pIHsKICAgICAgICAgICAgICAgIGlmIChsb2FkIDwgSykgeyAvLyDEkWnhu4NtIMSRw7NuCiAgICAgICAgICAgICAgICAgICAgYXBwZWFyW3ZdID0gMTsKICAgICAgICAgICAgICAgICAgICBsb2FkKys7CiAgICAgICAgICAgICAgICAgICAgZiArPSBjW3hbay0xXV1bdl07CiAgICAgICAgICAgICAgICAgICAgaWYgKGYgKyAoMipuIC0gayArIDEpICogY21pbiA8IGJlc3QpIHsKICAgICAgICAgICAgICAgICAgICAgICAgeFtrXSA9IHY7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrID09IDIgKiBuKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZXN0ID0gbWluKGJlc3QsIGYgKyBjW3ZdWzBdKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIFRyeShrICsgMSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGYgLT0gY1t4W2stMV1dW3ZdOwogICAgICAgICAgICAgICAgICAgIGxvYWQtLTsKICAgICAgICAgICAgICAgICAgICBhcHBlYXJbdl0gPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaW50IHUgPSB2IC0gbjsKICAgICAgICAgICAgICAgIGlmIChhcHBlYXJbdV0pIHsgLy8gY2jhu4kgdHLhuqMgbuG6v3UgxJHDoyDEkcOzbgogICAgICAgICAgICAgICAgICAgIGFwcGVhclt2XSA9IDE7CiAgICAgICAgICAgICAgICAgICAgbG9hZC0tOwogICAgICAgICAgICAgICAgICAgIGYgKz0gY1t4W2stMV1dW3ZdOwogICAgICAgICAgICAgICAgICAgIGlmIChmICsgKDIqbiAtIGsgKyAxKSAqIGNtaW4gPCBiZXN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHhba10gPSB2OwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoayA9PSAyICogbikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVzdCA9IG1pbihiZXN0LCBmICsgY1t2XVswXSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBUcnkoayArIDEpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBmIC09IGNbeFtrLTFdXVt2XTsKICAgICAgICAgICAgICAgICAgICBsb2FkKys7CiAgICAgICAgICAgICAgICAgICAgYXBwZWFyW3ZdID0gMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKdm9pZCBEbygpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CgogICAgY2luID4+IG4gPj4gSzsKICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDIqbjsgaSsrKQogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IDIqbjsgaisrKSB7CiAgICAgICAgICAgIGNpbiA+PiBjW2ldW2pdOwogICAgICAgICAgICBpZiAoaSAhPSBqKSBjbWluID0gbWluKGNtaW4sIChsbCljW2ldW2pdKTsKICAgICAgICB9CgogICAgZiA9IDA7CiAgICBiZXN0ID0gb287CiAgICBsb2FkID0gMDsKICAgIG1lbXNldChhcHBlYXIsIDAsIHNpemVvZihhcHBlYXIpKTsKCiAgICB4WzBdID0gMDsgLy8gc3RhcnQgZnJvbSBkZXBvdAogICAgVHJ5KDEpOwoKICAgIGNvdXQgPDwgYmVzdCA8PCAiXG4iOwp9CgpzaWduZWQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCksIGNpbi50aWUoMCksIGNvdXQudGllKDApOwojZGVmaW5lIHRhc2sgInRlc3QiCiAgICBpZiAoZm9wZW4odGFzayIuaW5wIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4odGFzayIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBpbnQgbnRlc3QgPSAxOwogICAgd2hpbGUgKG50ZXN0LS0pIERvKCk7CgogICAgY2VyciA8PCAiXG5UaW1lIGVsYXBzZWQ6ICIgPDwgMTAwMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQyA8PCAibXNcbiI7Cn0K