#include<stdio.h>
#include<string.h>
#include<math.h>

double hi[100][100],len,max,mae[100],ato[100];

int main(){
	int i,j,n,m,k;
	
	while(0<=scanf("%d%d",&n,&m)){
		if(n==0&&m==0)break;
		memset(hi,0,sizeof(hi));
		
		for(i=0;i<n;i++){
			for(j=0;j<n;j++){
				scanf("%lf",&hi[i][j]);
			}
		}
		
		for(i=0;i<n;i++){
			mae[i]=1;
		}
		
		for(i=1;i<m;i++){
			memset(ato,0,sizeof(ato));
			
			for(j=0;j<n;j++){
				//printf("%lf ",mae[j]);
			}
			//printf("\n");
			
			for(j=0;j<n;j++){
				for(k=0;k<n;k++){
					if(ato[j]<mae[k]*hi[k][j])ato[j]=mae[k]*hi[k][j];
				}
			}
			
			memcpy(mae,ato,sizeof(ato));
		}
		max=0;
		for(i=0;i<n;i++)if(max<mae[i])max=mae[i];
		
		printf("%.2lf\n",max);
	}
	return 0;
}