#include<stdio.h>
int main()
{
int T, m, n;
char s[55][1005], t[] = "ACGT";
scanf("%d", &T);
while (T--) {
scanf("%d%d", &m, &n);
for (int i = 0; i < m; ++i) {
scanf("%s", s[i]);
}
int ans = 0;
for (int i = 0; i < n; ++i) {
int a[4] = {0};
for (int j = 0; j < m; ++j) {
switch(s[j][i]) { // 统计该列每个字母的个数
case 'A': a[0]++; break;
case 'C': a[1]++; break;
case 'G': a[2]++; break;
case 'T': a[3]++; break;
}
}
int pos = 0;
for (int i = 1; i < 4; ++i) { // 找到个数最多且字典序最小的那个字母
if (a[i] > a[pos]) {
pos = i;
}
}
for (int i = 0; i < 4; ++i) {
if (i == pos)
continue;
ans += a[i];
}
printf("%c", t[pos]);
}
printf("\n%d\n", ans);
}
return 0;
}