#include <bits/stdc++.h>
const int inf = 0x3f3f3f3f;
const int inn = -(1 << 30);
using namespace std;
const int maxm = 105;
int a[maxm];
signed main() {
  int T;
  scanf("%d", &T);
  while (T--) {
    int n, m, k;
    scanf("%d%d%d", &n, &m, &k);
    for (int i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
    }
    int ok = 1;
    for (int i = 1; i <= n - 1; i++) {
      if (a[i] > a[i + 1]) {
        m += a[i] - a[i + 1];
        a[i] = a[i + 1];
      }
      if (a[i + 1] - a[i] < k && a[i]) {
        m += a[i] - (a[i + 1] - k);
        a[i] = a[i + 1] - k;
        if (a[i] < 0) {
          m -= -a[i];
          a[i] = 0;
        }
      }
      if (a[i + 1] - a[i] > k && m) {
        int t = a[i + 1] - k;
        m -= t - a[i];
        ;
        a[i] = t;
        if (m < 0) {
          ok = 0;
          break;
        }
      }
      if (abs(a[i] - a[i + 1]) > k) {
        ok = 0;
        break;
      }
    }
    if (ok) {
      puts("yes");
    } else {
      puts("no");
    }
  }
  return 0;
}
