#include<bits/stdc++.h>
using namespace std;
typedef double lf;
typedef long long ll;
typedef long double LF;
typedef unsigned long long ull;
typedef set<ll> sll;
typedef vector<ll> vll;
typedef map<string,ll> msl;
typedef pair<ll,ll> pll;
typedef vector<pll > vpll;
typedef map<ll,ll> mll;
#define gc getchar
#define lp(i,a,b) for(ll i = ll(a); i<ll(b) ; i++)
#define itvll(c,it) for(vll::iterator it = c.begin() ; it!=c.end() ; it++)
#define itmll(c,it) for(mll::iterator it = c.begin() ; it!=c.end() ; it++)
#define itmsl(c,it) for(msl::iterator it = c.begin() ; it!=c.end() ; it++)
ll ip(){
ll x = 0; bool isNeg = false; char c;
c = gc();
if(c == '-') isNeg = true , c = gc();
for( ; c >= '0' && c <= '9' ; c = gc() ) x = (x << 1) + (x << 3) + c - '0';
if(isNeg) x *= -1; return x;
}
ll binarySearch(vector<ll> &arr){
ll sz = arr.size();
lp(i,1,sz-1){
if(arr[i+1] > arr[i] && arr[i]==arr[i-1]){
return arr[i];
}
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
ll t,n,m;
t = ip();
while(t--){
n = ip() ; m = ip();
ll c[n][m];
ll x;
lp(p,0,2){
lp(i,0,n){
lp(j,0,m){
x = ip();
if(p) c[i][j] -= x;
else c[i][j] = x;
}
}
}
bool flag = true;
lp(i,0,n){
lp(j,0,m){
if(c[i][j] + c[0][0] != c[i][0] + c[0][j]){
flag = false;
break;
}
if(!flag) break;
}
}
if(!flag){
cout << -1 << "\n";
continue;
}
// if program reaches here , then optimal solution exists
vector<ll> arr;
lp(i,0,n) arr.push_back( -c[0][0] + c[i][0] );
lp(j,0,m) arr.push_back( -c[0][j] );
sort(arr.begin(),arr.end());
//ll median = arr[(n+m)/2];
ll ans = 0;
ll k = binarySearch(arr);
lp(i,0,n+m) ans += abs(arr[i]-k);
cout << ans << "\n";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgZG91YmxlIGxmOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiBsb25nIGRvdWJsZSBMRjsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIHNldDxsbD4gc2xsOwp0eXBlZGVmIHZlY3RvcjxsbD4gdmxsOwp0eXBlZGVmIG1hcDxzdHJpbmcsbGw+IG1zbDsKdHlwZWRlZiBwYWlyPGxsLGxsPiBwbGw7CnR5cGVkZWYgdmVjdG9yPHBsbCA+IHZwbGw7CnR5cGVkZWYgbWFwPGxsLGxsPiBtbGw7CgojZGVmaW5lIGdjIGdldGNoYXIKI2RlZmluZSBscChpLGEsYikgZm9yKGxsIGkgPSBsbChhKTsgaTxsbChiKSA7IGkrKykgCiNkZWZpbmUgaXR2bGwoYyxpdCkgZm9yKHZsbDo6aXRlcmF0b3IgaXQgPSBjLmJlZ2luKCkgOyBpdCE9Yy5lbmQoKSA7IGl0KyspCiNkZWZpbmUgaXRtbGwoYyxpdCkgZm9yKG1sbDo6aXRlcmF0b3IgaXQgPSBjLmJlZ2luKCkgOyBpdCE9Yy5lbmQoKSA7IGl0KyspCiNkZWZpbmUgaXRtc2woYyxpdCkgZm9yKG1zbDo6aXRlcmF0b3IgaXQgPSBjLmJlZ2luKCkgOyBpdCE9Yy5lbmQoKSA7IGl0KyspCgpsbCBpcCgpewoJbGwgeCA9IDA7IGJvb2wgaXNOZWcgPSBmYWxzZTsgY2hhciBjOwoJYyA9IGdjKCk7CglpZihjID09ICctJykJaXNOZWcgPSB0cnVlICwgYyA9IGdjKCk7Cglmb3IoIDsgYyA+PSAnMCcgICYmIGMgPD0gJzknIDsgYyA9IGdjKCkgKQl4ID0gKHggPDwgMSkgKyAoeCA8PCAzKSArIGMgLSAnMCc7CglpZihpc05lZykJeCAqPSAtMTsJcmV0dXJuIHg7Cn0KCmxsIGJpbmFyeVNlYXJjaCh2ZWN0b3I8bGw+ICZhcnIpewoJbGwgc3ogPSBhcnIuc2l6ZSgpOwoJbHAoaSwxLHN6LTEpewoJCWlmKGFycltpKzFdID4gYXJyW2ldICYmIGFycltpXT09YXJyW2ktMV0pewoJCQlyZXR1cm4gYXJyW2ldOwoJCX0KCX0KfQoKaW50IG1haW4oKXsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUoTlVMTCk7CglsbCB0LG4sbTsKCXQgPSBpcCgpOwoJd2hpbGUodC0tKXsgICAgICAgICAgCgkJbiA9IGlwKCkgOyBtID0gaXAoKTsKCQlsbCBjW25dW21dOyAgICAgICAgICAKCQlsbCB4OwoJCQoJCWxwKHAsMCwyKXsKCQkJbHAoaSwwLG4pewoJCQkJbHAoaiwwLG0pewoJCQkJCXggPSBpcCgpOwoJCQkJCWlmKHApCWNbaV1bal0gLT0geDsKCQkJCQllbHNlIGNbaV1bal0gPSB4OwoJCQkJfQoJCQl9CQkKCQl9CgkJCgkJYm9vbCBmbGFnID0gdHJ1ZTsKCQlscChpLDAsbil7CgkJCWxwKGosMCxtKXsKCQkJCWlmKGNbaV1bal0gKyBjWzBdWzBdICE9IGNbaV1bMF0gKyBjWzBdW2pdKXsKCQkJCQlmbGFnID0gZmFsc2U7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCQlpZighZmxhZykJYnJlYWs7CgkJCX0KCQl9CgkJaWYoIWZsYWcpewoJCQljb3V0IDw8IC0xIDw8ICJcbiI7CgkJCWNvbnRpbnVlOwoJCX0KCQkvLyBpZiBwcm9ncmFtIHJlYWNoZXMgaGVyZSAsIHRoZW4gb3B0aW1hbCBzb2x1dGlvbiBleGlzdHMKCQl2ZWN0b3I8bGw+IGFycjsKCQlscChpLDAsbikJYXJyLnB1c2hfYmFjayggLWNbMF1bMF0gKyBjW2ldWzBdICk7CgkJbHAoaiwwLG0pCWFyci5wdXNoX2JhY2soIC1jWzBdW2pdICk7CgkJc29ydChhcnIuYmVnaW4oKSxhcnIuZW5kKCkpOyAgICAgICAgICAgICAgCgkJLy9sbCBtZWRpYW4gPSBhcnJbKG4rbSkvMl07CgkJbGwgYW5zID0gMDsKCQlsbCBrID0gYmluYXJ5U2VhcmNoKGFycik7CgkJbHAoaSwwLG4rbSkJYW5zICs9IGFicyhhcnJbaV0tayk7CQoJCWNvdXQgPDwgYW5zIDw8ICJcbiI7CQoJfQoJcmV0dXJuIDA7Cn0=