//problem 3
#include <bits/stdc++.h>
using namespace std;
int n, m;
char grid[105][105];
int vis[105][105];
int level[105][105];
pair<int,int> par[105][105];
vector<pair<int, int>> b = {{2, 1}, {2, -1}, {1, 2}, {1, -2},
{-2, 1}, {-2, -1}, {-1, 2}, {-1, -2}};
bool valid(int i, int j) {
return !(i < 0 || i >= n || j < 0 || j >= m);
}
void bfs(int si, int sj) {
queue<pair<int, int>> q;
q.push({si, sj});
vis[si][sj] = true;
level[si][sj] = 0;
while(!q.empty()) {
int pi = q.front().first;
int pj = q.front().second;
q.pop();
for (int i = 0; i < 8; i++) {
int ci = pi + b[i].first;
int cj = pj + b[i].second;
if(valid(ci, cj) && !vis[ci][cj]) {
q.push({ci, cj});
vis[ci][cj] = true;
level[ci][cj] = level[pi][pj] + 1;
par[ci][cj] = {pi,pj};
}
}
}
}
int main() {
int t; cin >> t;
while(t--) {
cin >> n >> m;
int ki, kj, qi, qj;
cin >> ki >> kj;
cin >> qi >> qj;
memset(vis, false, sizeof(vis));
memset(level, -1, sizeof(level));
memset(par, -1, sizeof(par));
bfs(ki, kj);
cout << level[qi][qj] << endl;
}
return 0;
}
Ly9wcm9ibGVtIDMKCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG4sIG07CmNoYXIgZ3JpZFsxMDVdWzEwNV07CmludCB2aXNbMTA1XVsxMDVdOwppbnQgbGV2ZWxbMTA1XVsxMDVdOwpwYWlyPGludCxpbnQ+IHBhclsxMDVdWzEwNV07Cgp2ZWN0b3I8cGFpcjxpbnQsIGludD4+IGIgPSB7ezIsIDF9LCB7MiwgLTF9LCB7MSwgMn0sIHsxLCAtMn0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgey0yLCAxfSwgey0yLCAtMX0sIHstMSwgMn0sIHstMSwgLTJ9fTsKCmJvb2wgdmFsaWQoaW50IGksIGludCBqKSB7CiAgICByZXR1cm4gIShpIDwgMCB8fCBpID49IG4gfHwgaiA8IDAgfHwgaiA+PSBtKTsKfQoKdm9pZCBiZnMoaW50IHNpLCBpbnQgc2opIHsKICAgIHF1ZXVlPHBhaXI8aW50LCBpbnQ+PiBxOwogICAgcS5wdXNoKHtzaSwgc2p9KTsKICAgIHZpc1tzaV1bc2pdID0gdHJ1ZTsKICAgIGxldmVsW3NpXVtzal0gPSAwOwoKICAgIHdoaWxlKCFxLmVtcHR5KCkpIHsKICAgICAgICBpbnQgcGkgPSBxLmZyb250KCkuZmlyc3Q7CiAgICAgICAgaW50IHBqID0gcS5mcm9udCgpLnNlY29uZDsKICAgICAgICBxLnBvcCgpOwoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykgewogICAgICAgICAgICBpbnQgY2kgPSBwaSArIGJbaV0uZmlyc3Q7CiAgICAgICAgICAgIGludCBjaiA9IHBqICsgYltpXS5zZWNvbmQ7CgogICAgICAgICAgICBpZih2YWxpZChjaSwgY2opICYmICF2aXNbY2ldW2NqXSkgewogICAgICAgICAgICAgICAgcS5wdXNoKHtjaSwgY2p9KTsKICAgICAgICAgICAgICAgIHZpc1tjaV1bY2pdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGxldmVsW2NpXVtjal0gPSBsZXZlbFtwaV1bcGpdICsgMTsKICAgICAgICAgICAgICAgIHBhcltjaV1bY2pdID0ge3BpLHBqfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKCgppbnQgbWFpbigpIHsKICAgIAogICAgaW50IHQ7IGNpbiA+PiB0OwogICAgCiAgICB3aGlsZSh0LS0pIHsKICAgICAgICBjaW4gPj4gbiA+PiBtOwoKICAgICAgICBpbnQga2ksIGtqLCBxaSwgcWo7IAogICAgICAgIGNpbiA+PiBraSA+PiBrajsKICAgICAgICBjaW4gPj4gcWkgPj4gcWo7CiAgICAKICAgICAgICBtZW1zZXQodmlzLCBmYWxzZSwgc2l6ZW9mKHZpcykpOwogICAgICAgIG1lbXNldChsZXZlbCwgLTEsIHNpemVvZihsZXZlbCkpOwogICAgICAgIG1lbXNldChwYXIsIC0xLCBzaXplb2YocGFyKSk7CgogICAgICAgIGJmcyhraSwga2opOwoKICAgICAgICBjb3V0IDw8IGxldmVsW3FpXVtxal0gPDwgZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=