#include <bits/stdc++.h>
using namespace std;
inline int ci() {
  register char ch;
  int f = 1;
  while (!isdigit(ch = getchar())) f = ch == '-' ? -1 : 1;
  register int x = ch ^ '0';
  while (isdigit(ch = getchar())) x = (x * 10) + (ch ^ '0');
  return f * x;
}
enum { N = 128 };
int main() {
  int T = ci();
  int now[N];
  while (T--) {
    int n = ci(), m = ci(), k = ci();
    for (register int i = (1); i <= (n); i++) now[i] = ci();
    bool fail = 0;
    for (register int i = (2); i <= (n); i++)
      if (now[i - 1] + k < now[i]) {
        m -= now[i] - now[i - 1] - k;
        if (m < 0) {
          fail = 1;
          break;
        }
      } else {
        m += min(now[i - 1], now[i - 1] - now[i] + k);
      }
    puts(fail ? "NO" : "YES");
  }
  return 0;
}
