#include <bits/stdc++.h>
using namespace std;
bool ist(int x,int y,int n,int m)
{
return (x>=0 && x<n && y>=0 && y<m);
}
void slv()
{
	int n,m;
	cin>>n>>m;
    int a[n][m];
	map<int,int> mp;
	set<int> s;
	for (int i=0; i<n; i++)
	{
	for (int j=0; j<m; j++)
	{
	cin>>a[i][j];
	s.insert(a[i][j]);
	if (mp[a[i][j]]==0)
	mp[a[i][j]]++;
	if (ist(i+1,j,n,m) && a[i+1][j]==a[i][j])
	{mp[a[i][j]]++;continue;}
    if (ist(i,j+1,n,m) && a[i][j+1]==a[i][j])
	{mp[a[i][j]]++;continue;}
	if (ist(i-1,j,n,m) && a[i-1][j]==a[i][j])
	{mp[a[i][j]]++;continue;}
	if (ist(i,j-1,n,m) && a[i][j-1]==a[i][j])
	{mp[a[i][j]]++;continue;}
    }
    }
    int jg=0,mx=0;
    for (auto x:s)
    {
    mx=max(mx,mp[x]);
    jg+=mp[x];
	}
	cout<<jg-mx<<"\n";
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int tt;
cin>>tt;
while (tt--)
slv();
}