#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
using namespace std;
const int N = 110;
int t, n, m, k, x, y;
bool f;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> t;
  while (t--) {
    cin >> n >> m >> k >> x;
    f = 1;
    for (int i = 1; i < n; ++i) {
      cin >> y;
      if (x > y)
        m += min(x - y + k, x);
      else {
        m -= max(y - k, 0) - x;
        if (m < 0) f = 0;
      }
      x = y;
    }
    cout << (f ? "YES" : "NO") << endl;
  }
}
