// I AM A MUSLIM
#include "bits/stdc++.h"
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#define fast_io std::ios::sync_with_stdio(0);std::cin.tie(0)
#define lli long long int
#define flush fflush(stdout)
#define line printf("\n")
#define yn(a, b) printf("%s\n", (a) >= (b) ? "Yes":"No")
#define amodm(a, M) (((a)%M+M)%M)
// #define int lli
using pii = std::pair<int,int>;
const int MOD = 1000000007;
const int mxN = 500100;
signed main() {
int testCases=1;
scanf("%d",&testCases);
for (int TC = 1; TC <= testCases; TC++) {
int n;
scanf("%d",&n);
int m;
scanf("%d",&m);
int pre[n][m][26]; memset(pre, 0, sizeof pre);
int suf[n][m][26]; memset(suf, 0, sizeof suf);
std::vector<std::string> a;
for (int i = 0; i < n; i++) {
std::string s;
std::cin >> s;
a.push_back(s);
if (i) {
for (int j = 0; j < m; j++) {
for (int k = 0; k < 26; k++) {
pre[i][j][k] = pre[i-1][j][k];
}
}
}
for (int j = 0; j < m; j++) {
pre[i][j][s[j]-'a']++;
}
}
for (int i = n-1; i >= 0; i--) {
std::string s = a[i];
if (i != n-1) {
for (int j = 0; j < m; j++) {
for (int k = 0; k < 26; k++) {
suf[i][j][k] = suf[i+1][j][k];
}
}
}
for (int j = 0; j < m; j++) {
suf[i][j][s[j]-'a']++;
}
}
int ans = m;
for (int i = 0; i < n-1; i++) {
int cur_ans = 0;
for (int j = 0; j < m; j++) {
int pre_mx = 0, suf_mx = 0;
for (int k = 0; k < 26; k++) pre_mx = std::max(pre_mx, pre[i][j][k]);
for (int k = 0; k < 26; k++) suf_mx = std::max(suf_mx, suf[i+1][j][k]);
cur_ans += pre_mx + suf_mx;
}
if (ans < cur_ans) ans = cur_ans;
}
printf("%d\n", ans);
}
return 0;
}