#include #include #include #include using namespace std; typedef long long ll; pair bwcount(ll x1, ll y1, ll x2, ll y2) { if (x1 > x2 || y1 > y2) return make_pair(0, 0); ll sum = (y2 - y1 + 1) * (x2 - x1 + 1); ll c1 = (x2 - x1 + 1) >> 1, c2 = (x2 - x1 + 2) >> 1; ll h = (y2 - y1 + 1) >> 1; ll bcnt = h * (c1 + c2) + ((y2 - y1 + 1) & 1) * (((x1 + y1) & 1) ? c2 : c1); return make_pair(bcnt, sum - bcnt); } int main() { while (false) { int x1, y1, x2, y2; scanf("%d%d%d%d", &x1, &y1, &x2, &y2); auto ans = bwcount(x1, y1, x2, y2); printf("%lld %lld\n", ans.first, ans.second); } ll T, n, m, x1, y1, x2, y2, x3, y3, x4, y4; scanf("%lld", &T); while (T--) { scanf("%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld", &n, &m, &x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4); ll sum = n * m; ll wsum = (x2 - x1 + 1) * (y2 - y1 + 1); ll bsum = (x4 - x3 + 1) * (y4 - y3 + 1); auto org = bwcount(1, 1, m, n); auto dif1 = bwcount(x1, y1, x2, y2); auto dif2 = bwcount(x3, y3, x4, y4); auto dif3 = bwcount(max(x1, x3), max(y1, y3), min(x2, x4), min(y2, y4)); org.first = org.first - dif1.first - dif2.first + dif3.first; org.second = org.second - dif1.second - dif2.second + dif3.second; org.first += bsum, org.second += wsum; ll crs = dif3.first + dif3.second; org.second -= crs; printf("%lld %lld\n", org.second, org.first); } return 0; }