#include<bits/stdc++.h>
using namespace std;
int c[30][30];
bool vs[30];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n,k; cin>>n >>k;
int ans=INT_MAX;
priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> q;
for(int i=0;i<n;i++) for(int j=0;j<n;j++) cin>>c[i][j];
for(int i=0;i<(1<<n);i++){
if(__builtin_popcount(i)!=k) continue;
vector<int> in,out;
int cand=0;
for(int j=0;j<n;j++){
if(i&(1<<j)) in.push_back(j);
else out.push_back(j);
}
for(int j=0;j<n;j++) vs[j]=0;
for(auto u:in) q.push({0,u});
while(!q.empty()){
auto [w,u]=q.top();
q.pop();
if(vs[u]) continue;
vs[u]=true;
cand+=w;
for(int j=0;j<n;j++){
if(vs[j]) continue;
q.push({c[j][u],j});
}
}
ans=min(ans,cand);
}
cout<<ans;
}