#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>

using namespace std;
const int MAX = 101;

double item[MAX][MAX];
double ans[MAX][MAX][MAX];

int n,m;

void solve(){
  for(int i = 0; i < 2; i++)
    for(int j = 0; j < MAX; j++)
      fill(ans[i][j],ans[i][j]+MAX,1.0);

  
  for(int i = 2; i <= m; i++)
    for(int j = 0; j < n; j++)
      for(int k = 0; k < n; k++)
	for(int l = 0; l < n; l++)
	  ans[i][j][k] = max(ans[i][j][k],ans[i-1][l][j]*item[j][k]);



  double out = 0.0;

  for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++)
      out = max(out,ans[m][i][j]);
 
  printf("%.2f\n",out);
}

int main(){
  while(cin >> n >> m && n+m){

    memset(ans,0,sizeof(ans));

    for(int i = 0; i < n; i++)
      for(int j = 0; j < n; j++)
	cin >> item[i][j];

    solve();
  }
  return 0;
}