import sys
input = sys.stdin.readline
from heapq import heappop, heappush
t = int(input())
for _ in range(t):
n, l = map(int, input().split())
p = []
for _ in range(n):
a, b = map(int, input().split())
p.append((b, a))
p.sort()
ans = 0
for i in range(n):
h = []
cur = 0
count = 0
ans = max(ans, count)
for j in range(i, n):
cur += p[j][1]
heappush(h, -p[j][1])
count += 1
while count and cur + p[j][0] - p[i][0] > l:
count -= 1
cur += heappop(h)
ans = max(ans, count)
print(ans)
1025D - Recovering BST | 439A - Devu the Singer and Churu the Joker |
1323A - Even Subset Sum Problem | 1095A - Repeating Cipher |
630F - Selection of Personnel | 630K - Indivisibility |
20B - Equation | 600B - Queries about less or equal elements |
1015A - Points in Segments | 1593B - Make it Divisible by 25 |
680C - Bear and Prime 100 | 1300A - Non-zero |
1475E - Advertising Agency | 1345B - Card Constructions |
1077B - Disturbed People | 653A - Bear and Three Balls |
794A - Bank Robbery | 157A - Game Outcome |
3B - Lorry | 1392A - Omkar and Password |
489A - SwapSort | 932A - Palindromic Supersequence |
433A - Kitahara Haruki's Gift | 672A - Summer Camp |
1277A - Happy Birthday Polycarp | 577A - Multiplication Table |
817C - Really Big Numbers | 1355A - Sequence with Digits |
977B - Two-gram | 993A - Two Squares |