for _ in range(int(input())):
n = int(input())
d = {}
m = 0
for _ in range(n):
x, y = map(int, input().split())
d[x] = y
if x > m:
m = x
p = d.get(0, 0)
ans = m
x = 1
while p > 0:
ans = max(ans, x)
cx = d.get(x, 0)
if p > cx:
p = (p + cx) // 2
else:
p = p
x += 1
print(ans)
Zm9yIF8gaW4gcmFuZ2UoaW50KGlucHV0KCkpKToKICAgIG4gPSBpbnQoaW5wdXQoKSkKICAgIGQgPSB7fQogICAgbSA9IDAKICAgIGZvciBfIGluIHJhbmdlKG4pOgogICAgICAgIHgsIHkgPSBtYXAoaW50LCBpbnB1dCgpLnNwbGl0KCkpCiAgICAgICAgZFt4XSA9IHkKICAgICAgICBpZiB4ID4gbToKICAgICAgICAgICAgbSA9IHgKICAgICAgICAgICAgCiAgICBwID0gZC5nZXQoMCwgMCkKICAgIGFucyA9IG0KICAgIHggPSAxCiAgICB3aGlsZSBwID4gMDoKICAgICAgICBhbnMgPSBtYXgoYW5zLCB4KQogICAgICAgIGN4ID0gZC5nZXQoeCwgMCkKICAgICAgICBpZiBwID4gY3g6CiAgICAgICAgICAgIHAgPSAocCArIGN4KSAvLyAyCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcCA9IHAgIAogICAgICAgIHggKz0gMQogICAgICAgIAogICAgcHJpbnQoYW5zKQo=
MTAKNAoyIDIKMCAzCjQgMQoxIDIKMQoxMCAxCjEKMiAzCjMKMCAxCjIgMgozIDEKMwowIDQKMSAyCjIgMQoxCjAgMTAwCjIKMiA3CjMgMQoyCjAgMQozIDMKMwowIDEKMSAxCjU5IDEKNAowIDUKMSAxCjIgMwozIDEK
10
4
2 2
0 3
4 1
1 2
1
10 1
1
2 3
3
0 1
2 2
3 1
3
0 4
1 2
2 1
1
0 100
2
2 7
3 1
2
0 1
3 3
3
0 1
1 1
59 1
4
0 5
1 1
2 3
3 1