
#include<iostream>
#include<vector>
#include<iomanip>
using namespace std;
int n,m;
double M,manure[100][100];

void check(double size,int num,int pre)
{
  if(num>=m){
    if(M<size)M=size;
    return;
  }
  for(int i=0;i<n;i++)check(size*manure[pre][i],num+1,i);
}

int main()
{
  cout<<setprecision(2);
  cout<<setiosflags(ios::fixed);
  while(cin>>n>>m,n|m){
    for(int i=0;i<n;i++)for(int j=0;j<n;j++)cin>>manure[i][j];
    M=0;
    for(int i=0;i<n;i++)check(1.0,1,i);
    cout<<M<<endl;
  }
}