#include <bits/stdc++.h>
using namespace std;
long long a[10][5], b[10][5], d[10][10], h[4][10];
long long dis(long long x, long long y) {
  long long tp1 = a[x][b[x][1]] - a[y][b[y][1]];
  long long tp2 = a[x][b[x][2]] - a[y][b[y][2]];
  long long tp3 = a[x][b[x][3]] - a[y][b[y][3]];
  return tp1 * tp1 + tp2 * tp2 + tp3 * tp3;
}
long long cal2() {
  long long i, j, mn = 1e18;
  for (i = 1; i <= 8; i++) h[1][i] = 0, h[2][i] = 0, h[3][i] = 0;
  for (i = 1; i <= 8; i++)
    for (j = i + 1; j <= 8; j++) d[i][j] = dis(i, j), mn = min(mn, d[i][j]);
  for (i = 1; i <= 8; i++)
    for (j = i + 1; j <= 8; j++)
      if (d[i][j] == mn)
        h[1][i]++, h[1][j]++;
      else if (d[i][j] == 2 * mn)
        h[2][i]++, h[2][j]++;
      else if (d[i][j] == 3 * mn)
        h[3][i]++, h[3][j]++;
  for (i = 1; i <= 8; i++)
    if (h[1][i] != 3 || h[2][i] != 3 || h[3][i] != 1) return 0;
  return 1;
}
long long cal(long long x) {
  if (x == 9) return cal2();
  do {
    if (cal(x + 1)) return 1;
  } while (next_permutation(b[x] + 1, b[x] + 4));
  return 0;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long i, j;
  for (i = 1; i <= 8; i++)
    for (j = 1; j <= 3; j++) cin >> a[i][j];
  for (i = 1; i <= 8; i++)
    for (j = 1; j <= 3; j++) b[i][j] = j;
  if (cal(1)) {
    cout << "YES\n";
    for (i = 1; i <= 8; i++) {
      for (j = 1; j <= 3; j++) cout << a[i][b[i][j]] << " ";
      cout << "\n";
    }
  } else
    cout << "NO\n";
  return 0;
}
