/*
随机,给每个点黑白随机黑白染色,由于题目要求路径必须黑白相间
dp[k][i]表示长度为k的路径,终点是i的最小代价
除去点1之外,最小值对应的路径里最多有9个点,那么这条路径随机到颜色对应的概率是1/512
那么随机5000次,这个概率就接近1了
*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 100
ll n,mp[N][N],c[N],K,ans,dp[15][N];
void solve(){
memset(dp,0x3f,sizeof dp);
dp[0][1]=0;
for(int k=1;k<=K;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(c[i]!=c[j] && dp[k-1][j]!=0x3f3f3f3f3f3f3f3f)
dp[k][i]=min(dp[k][i],dp[k-1][j]+mp[j][i]);
ans=min(ans,dp[K][1]);
}
int main(){
cin>>n>>K;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>mp[i][j];
ans=0x3f3f3f3f3f3f3f3f;
int t=5000;srand(time(0));
while(t--){
for(int i=1;i<=n;i++)c[i]=rand()%2;
solve();
}
cout<<ans<<'\n';
}