#include<iostream>
#include<climits>
#include<math.h>
#include<vector>
#include<algorithm>
#include<cstdio>
#include <string>
#include <complex>
#include <functional>
#include<stdio.h>
using namespace std;
typedef pair<int,int> P;
double dat[100][100];
double dp[200][100];//動的計画法
int main(){
    int a,b;
    while(cin>>a>>b,a){
        for(int i=0;i<a;i++){
            for(int j=0;j<a;j++){
                cin>>dat[i][j];
            }
        }
        for(int i=0;i<a;i++)dp[0][i]=1;
        for(int i=1;i<b;i++){
            for(int j=0;j<a;j++){
                double max=0;
                for(int k=0;k<a;k++){
                    if(max<dp[i-1][k]*dat[k][j]){
                        max=dp[i-1][k]*dat[k][j];
                    }
                }
                dp[i][j]=max;
            }
        }
        double ret=0;
        for(int i=0;i<a;i++){
            if(ret<dp[b-1][i])ret=dp[b-1][i];
        }
        printf("%.2lf\n",ret);
    }
}
