#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int dp[N][2];
bool check(int i, bool flip, vector<int>& a, vector<int>& b, int n, int m) {
int val = a[i];
if (flip) val = b[0] - val;
if (i == n - 1) {
return true;
}
if (dp[i][flip] != -1) return dp[i][flip];
return dp[i][flip] = (a[i + 1] >= val && check(i + 1, false, a, b, n, m))
|| (b[0] - a[i + 1] >= val && check(i + 1, true, a, b, n, m));
}
void solve() {
int n, m;
cin >> n >> m;
vector<int> a(n);
memset(dp, -1, sizeof(dp));
for (int i = 0; i < n; i++) {
cin >> a[i];
}
vector<int> b(m);
cin >> b[0];
if (n == 1) {
cout << "YES" << endl;
return;
}
if (check(0, false, a, b, n, m) || check(0, true, a, b, n, m)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
int main() {
int t;
cin >> t;
while (t--) solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTiA9IDJlNSArIDU7CmludCBkcFtOXVsyXTsKCmJvb2wgY2hlY2soaW50IGksIGJvb2wgZmxpcCwgdmVjdG9yPGludD4mIGEsIHZlY3RvcjxpbnQ+JiBiLCBpbnQgbiwgaW50IG0pIHsKCQkKCWludCB2YWwgPSBhW2ldOwoJaWYgKGZsaXApIHZhbCA9IGJbMF0gLSB2YWw7IAoJCglpZiAoaSA9PSBuIC0gMSkgewoJCXJldHVybiB0cnVlOwoJfQoJCglpZiAoZHBbaV1bZmxpcF0gIT0gLTEpIHJldHVybiBkcFtpXVtmbGlwXTsKCglyZXR1cm4gZHBbaV1bZmxpcF0gPSAoYVtpICsgMV0gPj0gdmFsICYmIGNoZWNrKGkgKyAxLCBmYWxzZSwgYSwgYiwgbiwgbSkpIAoJCXx8IChiWzBdIC0gYVtpICsgMV0gPj0gdmFsICYmIGNoZWNrKGkgKyAxLCB0cnVlLCBhLCBiLCBuLCBtKSk7Cn0KCnZvaWQgc29sdmUoKSB7CglpbnQgbiwgbTsKCWNpbiA+PiBuID4+IG07Cgl2ZWN0b3I8aW50PiBhKG4pOwoJbWVtc2V0KGRwLCAtMSwgc2l6ZW9mKGRwKSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCWNpbiA+PiBhW2ldOwoJfQoJdmVjdG9yPGludD4gYihtKTsKCWNpbiA+PiBiWzBdOwoJaWYgKG4gPT0gMSkgewoJCWNvdXQgPDwgIllFUyIgPDwgZW5kbDsKCQlyZXR1cm47Cgl9CglpZiAoY2hlY2soMCwgZmFsc2UsIGEsIGIsIG4sIG0pIHx8IGNoZWNrKDAsIHRydWUsIGEsIGIsIG4sIG0pKSB7CgkJY291dCA8PCAiWUVTIiA8PCBlbmRsOwoJfSBlbHNlIHsKCQljb3V0IDw8ICJOTyIgPDwgZW5kbDsKCX0KCQp9CgppbnQgbWFpbigpIHsKCWludCB0OwoJY2luID4+IHQ7Cgl3aGlsZSAodC0tKSBzb2x2ZSgpOwp9