#include "stdio.h"

int n;
int m;
double p[100][100];
double dp[101][100];//i回目にjを使った時の最大の倍率

double ans = -1;

int max(int a,int b){if(a>b)return a;else return b;}

int main(){

	while(1){

		scanf("%d %d",&n,&m);

		if(n==0&&m==0){
			break;
		}

		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				scanf("%lf",&p[i][j]);
			}
		}

		ans = -1.0;

		for(int i=1;i<=m;i++){
			for(int j=0;j<n;j++){
				dp[i][j] = -1.000;
			}
		}

		for(int i=0;i<n;i++){
			dp[1][i] = 1.000;
		}

		for(int i=2;i<=m;i++){
			for(int j=0;j<n;j++){
				for(int k=0;k<n;k++){
					dp[i][j] = max(dp[i][j],dp[i-1][k] * p[k][j]);
					if(i==m){
						ans = max(ans,dp[i][j]);
					}
				}
			}
		}

		ans += 0.00;


		printf("%.2lf\n",ans);

	}

	return 0;

}