#include <cstdio>
#include <algorithm>
using namespace std;

int main(){
	int n, m;
	while( scanf("%d %d", &n, &m) , n || m ){
		// g[prev][now] := 成長度
		double g[101][101];
		
		for(int y=0 ; y < n ; y++ ){
			for(int x=0 ; x < n ; x++ ){
				scanf("%lf", &g[y][x] );
			}
		}
		
		// dp[i][prev] := 直前の肥料 prev で i 回の肥料を与えた時の苗木
		double dp[101][101] = {0};
		for(int i=0 ; i < n ; i++ ){
			dp[1][i] = 1.0; 
		}
		
		for(int i=1 ; i < m ; i++ ){
			for(int prev=0 ; prev < n ; prev++ ){
				for(int now=0 ; now < n ; now++ ){
					dp[i+1][now] = max( dp[i+1][now] , dp[i][prev] * g[prev][now] );
				}
			}
		}
		double ans = 0.0;
		for(int i=0 ; i < n ; i++ ){
			ans = max( ans , dp[m][i] );
		}
		printf("%.2f\n", ans);
	}
}