#include <bits/stdc++.h>
using namespace std;
long long powmod(long long a, long long b, long long mod) {
  long long res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
const int INF = 0x3f3f3f3f;
const int MAXN = 5005;
int n, k, v, t;
int a[MAXN];
int dp[MAXN][MAXN], pre[MAXN][MAXN];
bool choose[MAXN];
void trans(int val, int x, int y) {
  while (val > 0) {
    if (val > 1e9)
      printf("%d %d %d\n", 1e9, x, y);
    else
      printf("%d %d %d\n", val, x, y);
    val -= 1e9;
  }
}
int main() {
  scanf("%d%d%d", &n, &k, &v);
  int total = 0;
  for (int i = (1); i < (n + 1); i++) {
    scanf("%d", a + i);
    total += a[i];
  }
  t = v % k;
  dp[0][0] = true;
  for (int i = (1); i < (n + 1); i++) {
    int x = a[i] % k;
    for (int j = (0); j < (k); j++) {
      if (dp[i - 1][j]) dp[i][j] = 1, pre[i][j] = j;
      if (dp[i - 1][(j - x + k) % k]) dp[i][j] = 1, pre[i][j] = (j - x + k) % k;
    }
  }
  if (!dp[n][t] || total < v)
    puts("NO");
  else {
    puts("YES");
    int sum = 0, last = -1;
    for (int i = (n + 1) - 1; i >= (1); i--) {
      if (pre[i][t] != t) last = i, choose[i] = true, sum += a[i];
      t = pre[i][t];
    }
    if (last == -1) {
      for (int i = (1); i < (n); i++)
        if (a[i] != 0) printf("%d %d %d\n", (a[i] + k - 1) / k, i, n);
      if (v != 0) printf("%d %d %d", v / k, n, 1);
    } else {
      int llast = 1;
      if (llast == last) llast++;
      for (int i = (1); i < (n + 1); i++) {
        if (a[i] == 0)
          ;
        else if (choose[i] && i != last)
          printf("%d %d %d\n", (a[i] + k - 1) / k, i, last);
        else if (!choose[i] && i != llast)
          printf("%d %d %d\n", (a[i] + k - 1) / k, i, llast);
      }
      if (v - sum > 0) {
        trans((v - sum) / k, llast, last);
      } else if (v - sum < 0)
        trans((sum - v) / k, last, llast);
    }
  }
  return 0;
}
