/*
* Copyright (c) 2025 Emon Thakur
* All rights reserved.
*/
#include<bits/stdc++.h>
using namespace std;
int maxofc(vector<int>&c)
{
int mx = 0;
for(int i=0;i<26;i++) mx = max(mx , c[i]);
return mx;
}
void solve(int tc)
{
// string outp = "output"+to_string(tc)+".txt";
// string inp = "input"+to_string(tc)+".txt";
// ofstream file(outp);
// freopen(inp.c_str(),"r",stdin);
int t; cin >> t; while(t--)
{
int n,m; cin >> n >> m;
vector<string> s(n);
for(int i=0;i<n;i++) cin >> s[i];
vector<vector<int>> mxup(n+1,vector<int>(m,0)),mxd(n+1,vector<int>(m,0));
for(int j=0;j<m;j++)
{
vector<int> c(26,0);
for(int i=0;i<n;i++)
{
c[s[i][j]-'a']++;
mxup[i][j] = maxofc(c);
}
vector<int> cc(26,0);
for(int i=n-1;i>=0;i--)
{
cc[s[i][j]-'a']++;
mxd[i][j] = maxofc(cc);
}
}
int ans = 0;
for(int i=0;i<n;i++)
{
int ans2 = 0;
for(int j=0;j<m;j++)
{
ans2 += mxup[i][j]+mxd[i+1][j];
}
ans = max(ans , ans2);
}
cout<<ans<<'\n';
//file<<ans<<'\n';
}
}
int main()
{
ios::sync_with_stdio(false); cin.tie(nullptr);
solve(0);
int l=98,r=99;
//for(int i=l;i<=r;i++) solve(i);
}