#include <bits/stdc++.h>
using namespace std;
const int N = 21;
int a[N][N];
int dp[1<<N];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n, k;
cin >> n >> k;
for(int i = 0; i < n; ++i){
for(int j = 0; j < n; ++j){
cin >> a[i][j];
}
}
for(int k = 0; k < n; ++k){
for(int i = 0; i < n; ++i){
for(int j = 0; j < n; ++j){
a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
}
}
}
int res = 2e9;
memset(dp, 0x3f, sizeof dp);
for(int msk = 1; msk < (1<<n); ++msk){
if(__builtin_popcount(msk) < k) continue;
if(__builtin_popcount(msk) == k) dp[msk] = 0;
for(int i = 0; i < n; ++i){
if(!((msk)&(1<<i))) continue;
for(int j = 0; j < n; ++j){
if((msk)&(1<<j)) continue;
dp[msk|(1<<j)] = min(dp[msk|(1<<j)], dp[msk]+a[j][i]);
}
}
}
cout << dp[(1<<n)-1] << '\n';
}