#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll mod = 1e9 + 7;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
ll testcases;
cin >> testcases;
while (testcases--) {
ll n, m;
cin >> n >> m;
vector < string > arr;
for (ll i = 0; i < n; i++) {
string s;
cin >> s;
arr.push_back(s);
}
string t;
for (ll i = 0; i < m; i++) t.push_back('A');
arr.push_back(t);
ll pre[n + 1][m][26];
memset(pre, 0, sizeof(pre));
for (ll i = 0; i < n; i++) {
for (ll j = 0; j < m; j++) {
for (ll k = 0; k < 26; k++) {
if (arr[i][j] - 'a' == k) pre[i][j][k] = 1;
}
}
if (i) {
for (ll j = 0; j < m; j++) {
for (ll k = 0; k < 26; k++) {
pre[i][j][k] += pre[i - 1][j][k];
}
}
}
}
ll suff[n + 1][m][26];
memset(suff , 0, sizeof(suff));
for (ll i = n - 1 ; i >= 0 ; i--) {
for (ll j = 0 ; j < m ; j++) {
for (ll k = 0 ; k < 26 ; k++) {
if (arr[i][j] - 'a' == k) suff[i][j][k] = 1;
suff[i][j][k] += suff[i + 1][j][k];
}
}
}
ll ans = 0;
for(ll i = 0 ; i < n ; i++){
ll total = 0;
for(ll j = 0 ; j < m ; j++){
ll curr = 0 , op = 0;
for(ll k = 0 ; k < 26 ; k++) op = max(op , suff[i + 1][j][k]);
for(ll k = 0 ; k < 26 ; k++) curr = max(curr , op + pre[i][j][k]);
total += curr;
}
ans = max(ans , total);
}
cout << ans << "\n";
}
return 0;
}
// Author : Raj (raj_singh35)