//43
#include<iostream>
#include<algorithm>
#include<iomanip>

using namespace std;

int main(){
  for(int n,m;cin>>n>>m,n|m;){
    double g[100][100]={{}};
    for(int y=0;y<n;y++){
      for(int x=0;x<n;x++){
	cin>>g[y][x];
      }
    }
    double r[101][100]={{}};
    fill(r[0],r[1],1);
    for(int i=0;i<m-1;i++){
      for(int j=0;j<n;j++){
	for(int k=0;k<n;k++){
	  r[i+1][j]=max(r[i+1][j],r[i][k]*g[k][j]);
	}
      }
    }
    cout<<fixed<<setprecision(2)<<*max_element(r[m-1],r[m])<<endl;
  }
  return 0;
}