#include <bits/stdc++.h>
using namespace std;
int getK(int n, vector<int> &a) {
set<int> s;
s.insert(a[n - 1]);
int k = 0;
for(int i = n - 2; i > -1; i--) {
auto it = s.lower_bound(a[i]);
if(it != s.begin()) {
it--;
k = max((*it) + a[i], k);
}
s.insert(a[i]);
}
return k;
}
int main() {
//freopen("inp7.in", "r", stdin);
//freopen("out7.out", "w", stdout);
int t;
cin >> t;
assert(t > 0 && t <= 50000);
int sumN = 0;
while(t--) {
int n, k;
cin >> n >> k;
assert(n > 0 && n <= 100000);
assert(k > 0 && k <= 2000000000);
sumN += n;
vector<int> a(n);
for(int i = 0; i < n; i++) {
cin >> a[i];
assert(a[i] > 0 && a[i] <= 2000000000);
}
int rk = getK(n, a);
if(rk > k) cout << "NO\n";
else cout << "YES\n";
}
assert(sumN <= 300000);
}