#include <bits/stdc++.h>
using namespace std;
using lld = long long int;
using pii = pair<int, int>;
using pll = pair<lld, lld>;
using pli = pair<lld, int>;
using pil = pair<int, lld>;
using piii = pair<pii, int>;
int n, p;
lld m;
lld a[1009];
int main() {
  int i, j, k, l;
  int t = 1, tv = 0;
  scanf("%d", &t);
  while (t--) {
    scanf("%d %lld %d", &n, &m, &p);
    for (i = 0; i < n; i++) {
      scanf("%lld", &a[i]);
    }
    bool valid = true;
    for (i = 0; i + 1 < n; i++) {
      if (a[i] < a[i + 1] - p) {
        lld need = a[i + 1] - p - a[i];
        if (m >= need) {
          m -= need;
        } else {
          valid = false;
          break;
        }
      } else {
        lld xxz = max(a[i + 1] - p, 0LL);
        m += a[i] - xxz;
      }
    }
    printf("%s\n", valid ? "YES" : "NO");
  }
  return 0;
}
