#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int maxn = 2e5 + 7 ;
const int mod = 998244353 ;
inline ll read() {
ll x = 0, f = 1 ;
char c = getchar() ;
while (c > '9' || c < '0') {
if (c == '-')
f = -1 ;
c = getchar() ;
}
while (c >= '0' && c <= '9') {
x = x * 10 + c - '0' ;
c = getchar() ;
}
return x * f ;
}
ll t , n , m , k ;
struct Node{
ll x , y ;
bool friend operator < (const Node a , const Node b){
return a.y < b.y ;
}
}a[maxn] ;
void solve(){
n = read() ;
k = read() ;
for(int i = 1 ; i <= n ; i ++){
a[i].x = read() ;
a[i].y = read() ;
}
sort(a + 1 , a + n + 1) ;
ll ans = -INT_MAX ;
for(int i = 1 ; i <= n ; i ++){
priority_queue < ll , vector< ll > , less < ll > > q ;
ll res = 0 ;
for(int j = i ; j <= n ; j ++){
q.push((ll)a[j].x) ;
res += a[j].x ;
while(!q.empty() && a[j].y - a[i].y + res > k){
ll Max = q.top() ;
res -= Max ;
q.pop() ;
}
ans = max(ans , (ll)q.size()) ;
}
}
cout << ans << endl ;
}
int main(){
t = read() ;
while(t --){
solve() ;
}
return 0 ;
}