#include <bits/stdc++.h>
using namespace std;
bool solve(int n, long long m, long long k, vector<long long>& h) {
  for (int i = 0; i < n - 1; i++) {
    if (m < 0) return false;
    long long move = h[i] - (h[i + 1] - k);
    if (move >= 0) {
      m += min(move, h[i]);
    } else {
      m += move;
    }
  }
  if (m < 0) return false;
  return true;
}
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int n;
    long long m, k;
    scanf("%d", &n);
    scanf("%lld %lld", &m, &k);
    vector<long long> h(n);
    for (int i = 0; i < n; i++) {
      scanf("%lld", &h[i]);
    }
    solve(n, m, k, h) ? cout << "YES" << endl : cout << "NO" << endl;
  }
  return 0;
}
