#include <math.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
using ul = uint64_t;
using db = long double;
void Code_By_Mohamed_Khaled(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
const ll mod=1e9+7;
ll add(ll a, ll b) { return ((a % mod) + (b % mod)) % mod; }
inline ll mul(ll a, ll b) {a%=mod;b%=mod;ll x=a*b;return x>=mod ? x%mod:x;}
ll sub(ll a, ll b) { return ((a % mod) - (b % mod) + mod) % mod; }
int main(){
Code_By_Mohamed_Khaled();
ll t;cin>>t;
while (t--) {
ll n,m;cin>>n>>m;
vector<vector<ll>>v(n,vector<ll>(m));
for (ll i=0; i<n; i++) {
for (ll j=0;j<m;j++) {
cin>>v[i][j];
}
}
if(n == 1 || m == 1) {
ll mx=LLONG_MIN;
for (auto it:v) {
for (auto i:it)mx=max(mx,i);
}
cout<<mx-1<<"\n";
continue;
}
vector<ll>row(n,0),row_max_col(n,0),second_row_max(n, 0);
for (int i=0;i<n;i++){
ll first=-1,second=-1,idx=-1;
for (int j=0;j<m;j++){
ll val=v[i][j];
if(val>first){
second=first;
first=val;
idx=j;
}
else if(val>second){
second=val;
}
}
row[i]=first;
row_max_col[i]=idx;
second_row_max[i]=second;
}
vector<ll>col(m, 0);
for (int j=0;j<m;j++){
ll maxi=0;
for (int i=0;i<n; i++){
maxi=max(maxi, v[i][j]);
}
col[j]=maxi;
}
vector<vector<ll>>temp(m,vector<ll>(n,0));
vector<vector<ll>>left_max(m,vector<ll>(n,0)),right_max(m,vector<ll>(n,0));
for (int c = 0; c < m; c++){
for (int i = 0; i < n; i++){
if(row_max_col[i]==c)temp[c][i]=second_row_max[i];
else temp[c][i]=row[i];
}
left_max[c][0]=temp[c][0];
for (int i=1;i<n;i++){
left_max[c][i]=max(left_max[c][i-1],temp[c][i]);
}
right_max[c][n-1]=temp[c][n-1];
for (int i=n-2;i>=0;i--){
right_max[c][i]=max(right_max[c][i+1],temp[c][i]);
}
}
ll ans=LLONG_MAX;
for (ll r=0;r<n;r++){
ll o=row[r]-1;
for (int c = 0; c < m; c++){
ll x=col[c]-1;
ll a;
if(r==0) a=right_max[c][1];
else if(r==n-1)a=left_max[c][n - 2];
else a=max(left_max[c][r-1],right_max[c][r+1]);
ll cur=max({o,x,a});
ans=min(ans, cur);
}
}
cout<<ans<<"\n";
}
return 0;
}
I2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnVzaW5nIHVsID0gdWludDY0X3Q7CnVzaW5nIGRiID0gbG9uZyBkb3VibGU7CnZvaWQgQ29kZV9CeV9Nb2hhbWVkX0toYWxlZCgpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKfQpjb25zdCBsbCBtb2Q9MWU5Kzc7CmxsIGFkZChsbCBhLCBsbCBiKSB7IHJldHVybiAoKGEgJSBtb2QpICsgKGIgJSBtb2QpKSAlIG1vZDsgfQppbmxpbmUgbGwgbXVsKGxsIGEsIGxsIGIpIHthJT1tb2Q7YiU9bW9kO2xsIHg9YSpiO3JldHVybiB4Pj1tb2QgPyB4JW1vZDp4O30KbGwgc3ViKGxsIGEsIGxsIGIpIHsgcmV0dXJuICgoYSAlIG1vZCkgLSAoYiAlIG1vZCkgKyBtb2QpICUgbW9kOyB9CmludCBtYWluKCl7CiAgICBDb2RlX0J5X01vaGFtZWRfS2hhbGVkKCk7CiAgICBsbCB0O2Npbj4+dDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBsbCBuLG07Y2luPj5uPj5tOwogICAgICAgIHZlY3Rvcjx2ZWN0b3I8bGw+PnYobix2ZWN0b3I8bGw+KG0pKTsKICAgICAgICBmb3IgKGxsIGk9MDsgaTxuOyBpKyspIHsKICAgICAgICAgICAgZm9yIChsbCBqPTA7ajxtO2orKykgewogICAgICAgICAgICAgICAgY2luPj52W2ldW2pdOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmKG4gPT0gMSB8fCBtID09IDEpIHsKICAgICAgICAgICAgbGwgbXg9TExPTkdfTUlOOwogICAgICAgICAgICBmb3IgKGF1dG8gaXQ6dikgewogICAgICAgICAgICAgICAgZm9yIChhdXRvIGk6aXQpbXg9bWF4KG14LGkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQ8PG14LTE8PCJcbiI7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICB2ZWN0b3I8bGw+cm93KG4sMCkscm93X21heF9jb2wobiwwKSxzZWNvbmRfcm93X21heChuLCAwKTsKICAgICAgICBmb3IgKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgIGxsIGZpcnN0PS0xLHNlY29uZD0tMSxpZHg9LTE7CiAgICAgICAgICAgIGZvciAoaW50IGo9MDtqPG07aisrKXsKICAgICAgICAgICAgICAgIGxsIHZhbD12W2ldW2pdOwogICAgICAgICAgICAgICAgaWYodmFsPmZpcnN0KXsKICAgICAgICAgICAgICAgICAgICBzZWNvbmQ9Zmlyc3Q7CiAgICAgICAgICAgICAgICAgICAgZmlyc3Q9dmFsOwogICAgICAgICAgICAgICAgICAgIGlkeD1qOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSBpZih2YWw+c2Vjb25kKXsKICAgICAgICAgICAgICAgICAgICBzZWNvbmQ9dmFsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJvd1tpXT1maXJzdDsKICAgICAgICAgICAgcm93X21heF9jb2xbaV09aWR4OwogICAgICAgICAgICBzZWNvbmRfcm93X21heFtpXT1zZWNvbmQ7CiAgICAgICAgfQogICAgICAgIHZlY3RvcjxsbD5jb2wobSwgMCk7CiAgICAgICAgZm9yIChpbnQgaj0wO2o8bTtqKyspewogICAgICAgICAgICBsbCBtYXhpPTA7CiAgICAgICAgICAgIGZvciAoaW50IGk9MDtpPG47IGkrKyl7CiAgICAgICAgICAgICAgICBtYXhpPW1heChtYXhpLCB2W2ldW2pdKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb2xbal09bWF4aTsKICAgICAgICB9CiAgICAgICAgdmVjdG9yPHZlY3RvcjxsbD4+dGVtcChtLHZlY3RvcjxsbD4obiwwKSk7CiAgICAgICAgdmVjdG9yPHZlY3RvcjxsbD4+bGVmdF9tYXgobSx2ZWN0b3I8bGw+KG4sMCkpLHJpZ2h0X21heChtLHZlY3RvcjxsbD4obiwwKSk7CiAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBtOyBjKyspewogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgICAgICAgICBpZihyb3dfbWF4X2NvbFtpXT09Yyl0ZW1wW2NdW2ldPXNlY29uZF9yb3dfbWF4W2ldOwogICAgICAgICAgICAgICAgZWxzZSB0ZW1wW2NdW2ldPXJvd1tpXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsZWZ0X21heFtjXVswXT10ZW1wW2NdWzBdOwogICAgICAgICAgICBmb3IgKGludCBpPTE7aTxuO2krKyl7CiAgICAgICAgICAgICAgICBsZWZ0X21heFtjXVtpXT1tYXgobGVmdF9tYXhbY11baS0xXSx0ZW1wW2NdW2ldKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByaWdodF9tYXhbY11bbi0xXT10ZW1wW2NdW24tMV07CiAgICAgICAgICAgIGZvciAoaW50IGk9bi0yO2k+PTA7aS0tKXsKICAgICAgICAgICAgICAgIHJpZ2h0X21heFtjXVtpXT1tYXgocmlnaHRfbWF4W2NdW2krMV0sdGVtcFtjXVtpXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGwgYW5zPUxMT05HX01BWDsKICAgICAgICBmb3IgKGxsIHI9MDtyPG47cisrKXsKICAgICAgICAgICAgbGwgbz1yb3dbcl0tMTsKICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBtOyBjKyspewogICAgICAgICAgICAgICAgbGwgeD1jb2xbY10tMTsKICAgICAgICAgICAgICAgIGxsIGE7CiAgICAgICAgICAgICAgICBpZihyPT0wKSBhPXJpZ2h0X21heFtjXVsxXTsKICAgICAgICAgICAgICAgIGVsc2UgaWYocj09bi0xKWE9bGVmdF9tYXhbY11bbiAtIDJdOwogICAgICAgICAgICAgICAgZWxzZSBhPW1heChsZWZ0X21heFtjXVtyLTFdLHJpZ2h0X21heFtjXVtyKzFdKTsKICAgICAgICAgICAgICAgIGxsIGN1cj1tYXgoe28seCxhfSk7CiAgICAgICAgICAgICAgICBhbnM9bWluKGFucywgY3VyKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb3V0PDxhbnM8PCJcbiI7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==