#include #include #include #include #include #include using namespace std; template inline void R(Type &x) { int c = getchar(); bool neg = 0; for (; c < 48 || c > 57; c = getchar())if (c == '-')neg = true; for (x = 0; c > 47 && c < 58; x = (Type) 10 * x + c - 48, c = getchar()); if (neg)x = -x; } int n, s[100010]; int main() { int T; R(T); while (T--) { R(n); for (int i = 0; i <= 100000; ++i) s[i] = 0; int mxy = 0; for (int i = 1; i <= n; ++i) { int x, y; R(x); R(y); if (s[y] == 0) s[y] = x; else s[y] = 3; mxy = max(mxy, y); } int flag = 0, left_go = 0, right_stop = 0, right_go = 0; for (int k = 1; k <= mxy; ++k) { if (s[k] == 2 || s[k] == 3) left_go = k + 3; if (s[k] == 1) { right_stop = k + 2; if (flag == 3 || flag == 2) right_go = max(k + 1, left_go); if (flag == 1) right_go = max(k + 1, right_go); if (flag == 0) right_go = k + 1; } flag = s[k]; } if (flag == 3) printf("%d\n", mxy + 2); if (flag == 2) printf("%d\n", mxy + 2); if (flag == 1) printf("%d\n", min(right_stop, right_go)); } return 0; }