#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define f first
#define s second
using namespace std;
int main(){
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
cin >> t;
while (t--){
ll n, m, ans = 0;
cin >> n >> m;
string s[n];
ll a[m][26], v[n][m], rv[n][m];
for (int i = 0; i < m; i++){
for (int j = 0; j < 26; j++){
a[i][j] = 0;
}
}
for (int i = 0; i < n; i++){
cin >> s[i];
for (int j = 0; j < m; j++){
a[j][s[i][j] - 97]++;
ll mx = 0;
for (int k = 0; k < 26; k++){
mx = max(mx, a[j][k]);
}
v[i][j] = mx;
}
}
for (int i = 0; i < m; i++){
for (int j = 0; j < 26; j++){
a[i][j] = 0;
}
}
for (int i = n - 1; i >= 0; i--){
for (int j = 0; j < m; j++){
a[j][s[i][j] - 97]++;
ll mx = 0;
for (int k = 0; k < 26; k++){
mx = max(mx, a[j][k]);
}
rv[i][j] = mx;
}
}
if (n == 1){
cout << m << endl;
continue;
}
for (int i = 0; i < n - 1; i++){
ll cur = 0;
for (int j = 0; j < m; j++){
cur += (v[i][j] + rv[i + 1][j]);
}
ans = max(ans, cur);
}
cout << ans << endl;
}
}