#include #include using namespace std; using ll = long long; #define rep(i, s, t) for (ll i = s; i < (ll)(t); i++) #define all(x) begin(x), end(x) template bool chmin(T& x, T y) { return x > y ? (x = y, true) : false; } template bool chmax(T& x, T y) { return x < y ? (x = y, true) : false; } void solve() { ll h, w, sx, sy, x, y; cin >> h >> w >> sx >> sy >> x >> y; sx--, sy--, x--, y--; if (sx != x && sy != y) { ll ans = h * w * 2; ans -= h + w; if (sx + sy == x + y) { if (x < sx) { // y > sy // rep(i, x + 1, h) { // int j = x + y - i; // [x+y-h+1, y) // [0,y) // } ans -= min(y, x - h - 1); } else { // x > sx, y < sy // rep(i, 0, x) { // int j = x + y - i; // [y + 1, x + y + 1) // [y + 1, w) // } ans -= min(x, w - y - 1); } } else { // rep(i, 0, h) { // int j = sx + sy - i; // [sx+sy-h+1, sx + sy + 1) // } ans -= min(sx + sy + 1, h + w - sx - sy - 1); } if (sx - sy == x - y) { if (sx < x) { // rep(i, 0, x) { // int j = i - x + y; // [-x+y, y) // [0, y) // } ans -= min(y, x); } else { // rep(i, x + 1, h) { // int j = i - x + y; // [y + 1, h -x + y) // [y + 1, w) // } ans -= min(h - x - 1, w - y - 1); } } else { // rep(i, 0, h) { // int j = i - sx + sy; // [-sx+sy, h-sx+sy) // } ans -= min(h - sx + sy, w + sx - sy); } cout << ans << '\n'; } else { assert(0); cout << "-1\n"; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); int t = 1; cin >> t; while (t--) solve(); }