from scipy.optimize import linprog T = int(input()) for _ in range(T): N, M = map(int, input().split()) X = list([0.] * (M + 1) for _ in range(N + 1)) for i in range(N): a = list(map(int, input().split())) for j in range(M): X[i][j] = a[j] X[i][M] = 1. for i in range(M): X[N][i] = 1. y = [10001.] * (N + 1) z = [-10001.] * (M + 1) y[N] = 1. z[M] = -1. res = linprog( c = z, A_ub = X, b_ub = y, bounds = (0, None), method = 'highs-ds', options = { 'primal_feasibility_tolerance': 1e-10, 'dual_feasibility_tolerance': 1e-10, 'ipm_optimality_tolerance': 1e-10 } ) print(20002. + res.fun)