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