#include <bits/stdc++.h>
using namespace std;
const int maxn = 110;
int t, n, m, k, h[maxn];
int main() {
  scanf("%d", &t);
  for (register int cas = 1; cas <= t; cas++) {
    int flag = 0;
    scanf("%d%d%d", &n, &m, &k);
    for (register int i = 1; i <= n; i++) scanf("%d", &h[i]);
    for (register int i = 1; i < n; i++) {
      if (h[i + 1] > h[i] && h[i + 1] - h[i] > k) {
        m -= h[i + 1] - h[i] - k;
        if (m < 0) {
          flag = 1;
          break;
        }
        continue;
      }
      int x = max(h[i + 1] - k, 0);
      m += h[i] - x;
    }
    if (!flag)
      puts("YES");
    else
      puts("NO");
  }
  return 0;
}
