#include <algorithm>
#include <iomanip>
#include <iostream>
#include <vector>
#include <set>
#include <numeric>
#include <map>
#include <unordered_map>
using namespace std;
#define all(a) a.begin(), a.end()
#define ll long long
#define fo(i,n) for (long long i = 0; i < n; i++)
bool comp(pair<char,ll> a, pair<char,ll> b)
{
    return (a.first < b.first);
}
bool comp2(pair<char,ll> a, pair<char,ll> b)
{
    return (a.first > b.first);
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    ll n,m,i;
    ll a,b;
    string input;
    cin >> i;
    while (i--)
    {
        cin >> n >> m;
        ll res = 0;
        map<ll,ll> freq;
        vector<vector<ll>> nums(n,vector<ll>(m,0));
        set<ll> num;
        fo(j,n)
        {
            fo(k,m)
            {
                cin >> a;
                nums[j][k] = a;
                num.insert(a);
                if (j > 0)
                {
                    if (nums[j-1][k] == a)
                    {
                        freq[a]++;
                    }
                }
                if (k > 0)
                {
                    if (nums[j][k-1] == a)
                    {
                        freq[a]++;
                    }
                }
            }
        }
        ll maxi = 0;
        for (auto k : num)
        {
            if (freq[k] > maxi)
            {
            	maxi = freq[k];
            	if (maxi > 1)
            	{
            		maxi = 1;
            	}
            }
        }
        for (auto k : num)
        {
        	ll bruh = 2;
        	res+= min(freq[k]+1,bruh);
        }
        cout << res-(maxi+1) << '\n';
    }
}