#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
double dp[100][100];
double tk[100][100];
int main()
{
    while(1)
    {
        int n,m;
        cin>>n>>m;if(!n)return 0;
        for(int i=0;i<n;++i){
            for(int j=0;j<n;++j){
                cin>>tk[i][j];
            }
        }
        for(int i=0;i<100;++i){
            fill(dp[i],dp[i]+100,0);
        }
        for(int i=0;i<n;++i){
            dp[0][i]=1;
        }
        for(int i=1;i<m;++i){
            for(int j=0;j<n;++j){
                for(int k=0;k<n;++k){
                    double buf;
                    buf=dp[i-1][j]*tk[j][k];
                    dp[i][k]=max(dp[i][k],buf);
                }
            }
        }
        double ans=0;
        for(int i=0;i<n;++i){
            ans=max(ans,dp[m-1][i]);
        }
        printf("%.2lf\n",ans);
    }
    return 0;
}