//#pragma comment(linker, "/STACK:64000000") #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define prev privet1 #define next privet2 #define y1 privet3 #define rank privet4 #define left privet5 #define right privet6 #define y0 privet7 const double pi = 3.141592653589793238; int a[1 << 20]; int main() { int tc; scanf("%d", &tc); while (tc--) { int n, m; scanf("%d%d", &n, &m); long long ans = 0; m--; n--; memset(a, 0, sizeof(a)); for (int y = 0; y <= m; y++) a[y ^ (m - y)]++; for (int x = 0; x <= n; x++) ans += a[x ^ (n - x)]; printf("%lld\n", (long long)(n + 1) * (m + 1) - ans); } }