#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); }