#include <bits/stdc++.h>
using namespace std;
template <typename T1, typename T2, typename T3>
class triple {
 public:
  T1 first;
  T2 second;
  T3 third;
  triple() {
    first = 0;
    second = 0;
    third = 0;
  }
};
const int maxn = 5000 + 10;
int n, k, v, temp1, temp2, cnt1, cnt2;
pair<int, int> g[maxn];
bool dp[maxn][maxn];
void func(int i, int j) {
  if (i == 0) return;
  if (dp[i - 1][j]) {
    if (temp2 == -1)
      temp2 = i;
    else if (g[i].first + (g[i].second > 0) > 0)
      cout << g[i].first + (g[i].second > 0) << ' ' << i << ' ' << temp2
           << endl;
    return func(i - 1, j);
  } else {
    if (temp1 == -1)
      temp1 = i;
    else
      cout << g[i].first + 1 << ' ' << i << ' ' << temp1 << "\n";
    cnt2 += g[i].second;
    cnt1 += g[i].first + cnt2 / k;
    cnt2 = cnt2 % k;
    if (g[i].second <= j)
      return func(i - 1, j - g[i].second);
    else
      return func(i - 1, j - g[i].second + k);
  }
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n >> k >> v;
  int sum = 0;
  for (int(i) = (1); (i) < (n + 1); (i)++) {
    int x;
    cin >> x;
    sum += x;
    g[i].first = x / k;
    g[i].second = x % k;
  }
  dp[0][0] = true;
  temp1 = -1;
  temp2 = -1;
  for (int(i) = (1); (i) < (n + 1); (i)++)
    for (int((j)) = (0); ((j)) < ((k)); ((j))++) {
      dp[i][j] = dp[i - 1][j];
      if (g[i].second <= j)
        dp[i][j] = dp[i][j] | dp[i - 1][j - g[i].second];
      else
        dp[i][j] = dp[i][j] | dp[i - 1][j - g[i].second + k];
    }
  if (dp[n][v % k] and sum >= v)
    cout << "YES\n";
  else
    cout << "NO\n";
  if (dp[n][v % k] and sum >= v) {
    func(n, v % k);
    if (cnt1 > v / k) {
      if (temp1 != 1)
        cout << cnt1 - v / k << ' ' << temp1 << ' ' << 1 << "\n";
      else
        cout << cnt1 - v / k << ' ' << temp1 << ' ' << n << "\n";
    } else if (cnt1 < v / k) {
      if (temp1 == -1) {
        if (temp2 != 1)
          cout << v / k - cnt1 << ' ' << temp2 << ' ' << 1 << "\n";
        else
          cout << v / k - cnt1 << ' ' << temp2 << ' ' << n << "\n";
      } else
        cout << v / k - cnt1 << ' ' << temp2 << ' ' << temp1 << "\n";
    }
  }
  return 0;
}
