#include <iostream>
#include <cmath>
using namespace std;

const int MAX_N = 100, MAX_M = 100;
const double EPS = 1e-10;

int n,m;
long double g[MAX_N][MAX_N], dp[2][MAX_N];

int main()
{
    int m, n;
    while(cin >> n >> m && n) {
        for(int i = 0; i < n; i++) 
            for(int j = 0; j < n; j++) 
                cin >> g[i][j];

        for(int i = 0; i < n; i++) {
            dp[0][i] = 1.0;
            dp[1][i] = -1.0;
        }
        
        for(int i = 0; i < m - 1; i++) {
            for(int j = 0; j < n; j++) {
                for(int k = 0; k < n; k++) {
                    dp[(i+1) % 2][k] = max(dp[(i+1) % 2][k], dp[i % 2][j] * g[j][k]);
                }
            }
        }
        long double ret = 0.0;
        for(int i = 0; i < n; i++) 
            ret = max(ret, dp[(m-1) % 2][i]);
        printf("%.2Lf\n", ret);

    }
    
}