#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;
/*
肥料の種類	n	<=100
与える回数	m	<=100
*/
int main(){
	
	for(int n,m;cin>>n>>m,n;){
		double data[100][100];//直前/投与
		double now[100],tmp[100];
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				cin>>data[i][j];
			}
		}
		for(int i=0;i<n;i++)now[i]=tmp[i]=1.0;
		for(int i=1;i<m;i++){
			for(int k=0;k<n;k++){//直後
				for(int j=0;j<n;j++){//直前
					if(!k)tmp[j]=now[k]*data[k][j];
					else tmp[j]=max(tmp[j],now[k]*data[k][j]);
				}
			}
			for(int j=0;j<n;j++)now[j]=tmp[j];
		}
		for(int i=1;i<n;i++){
			now[0]=max(now[0],now[i]);
		}
		printf("%.2f\n",now[0]);
	}
	
	return 0;
}
