#include #include #include #include #include #include #include #include using namespace std; const int INF = 1000000000; long long readInt(long long l, long long r, char endd) { long long x = 0; int cnt = 0; int fi = -1; bool is_neg = false; while (true) { char g = getchar(); if (g == '-') { assert(fi == -1); is_neg = true; continue; } if ('0' <= g && g <= '9') { x *= 10; x += g - '0'; if (cnt == 0) { fi = g - '0'; } cnt++; assert(fi != 0 || cnt == 1); assert(fi != 0 || is_neg == false); assert(!(cnt > 19 || (cnt == 19 && fi > 1))); } else if (g == endd) { if (is_neg) { x = -x; } assert(l <= x && x <= r); return x; } else { assert(false); } } } string readString(int l, int r, char endd) { string ret = ""; int cnt = 0; while (true) { char g = getchar(); assert(g != -1); if (g == endd) { break; } cnt++; ret += g; } assert(l <= cnt && cnt <= r); return ret; } long long readIntSp(long long l, long long r) { return readInt(l, r, ' '); } long long readIntLn(long long l, long long r) { return readInt(l, r, '\n'); } string readStringLn(int l, int r) { return readString(l, r, '\n'); } string readStringSp(int l, int r) { return readString(l, r, ' '); } int main() { int tests = readIntLn(1, 10); for (assert(1 <= tests && tests <= 10); tests --;) { int n, xMin, xMax; n = readIntSp(1, 100000); xMin = readIntSp(1, INF); xMax = readIntLn(1, INF); // assert(scanf("%d%d%d", &n, &xMin, &xMax) == 3); assert(1 <= n && n <= 100000); assert(1 <= xMin && xMin <= xMax && xMax <= INF); int total = xMax - xMin + 1; int w = 1, b = 0; for (int i = 0; i < n; ++ i) { int wi, bi; // assert(scanf("%d%d", &wi, &bi) == 2); wi = readIntSp(1, INF); bi = readIntLn(1, INF); assert(1 <= wi && wi <= INF); assert(1 <= bi && bi <= INF); wi %= 2; bi %= 2; b = (b * wi + bi) % 2; w = wi * w % 2; } int cnt[2] = {0, 0}; if (xMin % 2 == xMax % 2) { ++ cnt[xMin % 2]; ++ xMin; } if (xMin <= xMax) { int half = (xMax - xMin + 1) / 2; cnt[0] += half; cnt[1] += half; } int spam = 0; for (int mod = 0; mod < 2; ++ mod) { if ((mod * w + b) % 2 == 1) { spam += cnt[mod]; } } printf("%d %d\n", total - spam, spam); } return 0; }