#include <bits/stdc++.h>
using namespace std;
#define int long long
int map_max(map<char, int> mp) {
int max_val=0;
for(auto elem:mp) max_val=max(max_val, elem.second);
return max_val;
}
int32_t main() {
int t;
cin >> t;
for(int q=0; q<t; ++q) {
int ra, length;
cin >> ra >> length;
string arr[ra];
for(int i=0; i<ra; ++i) cin >> arr[i];
int max_score=0, score=0;
vector<pair<map<char,int>, map<char,int>>> values(length);
//ilk kesite göre harfleri al
for(int j=0; j<length; ++j)
for(auto str : arr) {
//Her stringin o indexi için vectorun o index kısmındaki o array harfini 1 artır.
values[j].second[str[j]]++;
}
//Kesit=0 için max değeri bul
for(auto elem : values) score+=map_max(elem.first);
for(auto elem : values) score+=map_max(elem.second);
max_score=max(max_score, score);
//Kesitler
for(int i=1; i<ra; ++i) {
score=0;
//(i-1)ci stringin her karakteri için vec[i].first[char] artır vec[i].second[char] azalt.
for(int j=0; j<length; ++j) {values[j].first[arr[i-1][j]]++; values[j].second[arr[i-1][j]]--;}
//Yeni skoru bul
for(auto elem : values) score+=map_max(elem.first);
for(auto elem : values) score+=map_max(elem.second);
max_score=max(max_score, score);
}
cout << max_score << endl;
}
return 0;
}