import math
def find(u, par):
if par[u] != u:
par[u] = find(par[u], par)
return par[u]
def union(u, v, par, size):
u_root = find(u, par)
v_root = find(v, par)
if u_root == v_root:
return
if size[u_root] < size[v_root]:
par[u_root] = v_root
size[v_root] += size[u_root]
else:
par[v_root] = u_root
size[u_root] += size[v_root]
def ip():
return map(int,input().split())
def f(k):
curr=0
rem=-1
for i in range(n):
if curr==0 and b[i]>=k-1:
curr=1
rem=b[i]
continue
if curr<=a[i] and b[i]>=k-(curr+1):
rem=min(rem-1,b[i])
if rem<0:
return False
else:
curr+=1
if curr>=k:
return True
return False
T=1
T=int(input())
for __ in range(T):
n=int(input())
lst=[]
a=[]
b=[]
for _ in range(n):
x,y=ip()
b.append(x)
a.append(y)
lo=1
hi=n
ans=lo
while lo<=hi:
mid=(lo+hi)//2
if f(mid):
ans=mid
lo=mid+1
else:
hi=mid-1
print(ans)
aW1wb3J0IG1hdGgKZGVmIGZpbmQodSwgcGFyKToKCiAgICBpZiBwYXJbdV0gIT0gdToKICAgICAgICBwYXJbdV0gPSBmaW5kKHBhclt1XSwgcGFyKQogICAgcmV0dXJuIHBhclt1XQoKZGVmIHVuaW9uKHUsIHYsIHBhciwgc2l6ZSk6CiAgICB1X3Jvb3QgPSBmaW5kKHUsIHBhcikKICAgIHZfcm9vdCA9IGZpbmQodiwgcGFyKQoKICAgIGlmIHVfcm9vdCA9PSB2X3Jvb3Q6CiAgICAgICAgcmV0dXJuIAoKCiAgICBpZiBzaXplW3Vfcm9vdF0gPCBzaXplW3Zfcm9vdF06CiAgICAgICAgcGFyW3Vfcm9vdF0gPSB2X3Jvb3QKICAgICAgICBzaXplW3Zfcm9vdF0gKz0gc2l6ZVt1X3Jvb3RdCiAgICBlbHNlOgogICAgICAgIHBhclt2X3Jvb3RdID0gdV9yb290CiAgICAgICAgc2l6ZVt1X3Jvb3RdICs9IHNpemVbdl9yb290XQoKZGVmIGlwKCk6CiAgICByZXR1cm4gbWFwKGludCxpbnB1dCgpLnNwbGl0KCkpCgpkZWYgZihrKToKICAgIGN1cnI9MAogICAgcmVtPS0xCiAgICBmb3IgaSBpbiByYW5nZShuKToKICAgICAgICBpZiBjdXJyPT0wIGFuZCBiW2ldPj1rLTE6CiAgICAgICAgICAgIGN1cnI9MQogICAgICAgICAgICByZW09YltpXQogICAgICAgICAgICBjb250aW51ZQogICAgICAgIGlmIGN1cnI8PWFbaV0gYW5kIGJbaV0+PWstKGN1cnIrMSk6CiAgICAgICAgICAgIHJlbT1taW4ocmVtLTEsYltpXSkKICAgICAgICAgICAgaWYgcmVtPDA6CiAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIGN1cnIrPTEKICAgIAogICAgaWYgY3Vycj49azoKICAgICAgICByZXR1cm4gVHJ1ZQogICAgcmV0dXJuIEZhbHNlCgoKCgoKVD0xClQ9aW50KGlucHV0KCkpCmZvciBfXyBpbiByYW5nZShUKToKICAgIG49aW50KGlucHV0KCkpCiAgICBsc3Q9W10KICAgIGE9W10KICAgIGI9W10KICAgIGZvciBfIGluIHJhbmdlKG4pOgogICAgICAgIHgseT1pcCgpCiAgICAgICAgYi5hcHBlbmQoeCkKICAgICAgICBhLmFwcGVuZCh5KQogICAgCiAgICBsbz0xCiAgICBoaT1uCgogICAgYW5zPWxvCgogICAgd2hpbGUgbG88PWhpOgogICAgICAgIG1pZD0obG8raGkpLy8yCiAgICAgICAgaWYgZihtaWQpOgogICAgICAgICAgICBhbnM9bWlkCiAgICAgICAgICAgIGxvPW1pZCsxCiAgICAgICAgZWxzZToKICAgICAgICAgICAgaGk9bWlkLTEKCiAgICBwcmludChhbnMpCgogICAgICAgICAgICAK