#include <bits/stdc++.h>
using namespace std;
long long p[9][4];
long long sqr(long long x) { return x * x; }
bool eq(long long x, long long y) { return x == y; }
long long dist(long long x, long long y) {
  return (sqr(p[x][0] - p[y][0]) + sqr(p[x][1] - p[y][1]) +
          sqr(p[x][2] - p[y][2]));
}
long long pp[9][4];
void bt(long long id) {
  if (id == 8) {
    for (long long i = 0; i < 7; i++) {
      long long arr[8];
      for (long long j = 0; j < 8; ++j) {
        arr[j] = dist(i, j);
      }
      sort(arr, arr + 8);
      if (!eq(arr[0], 0)) return;
      if (!eq(arr[1], arr[2]) || !eq(arr[2], arr[3]) || eq(arr[1], 0)) return;
      long long l = arr[1];
      long long l2 = l * (2);
      long long l3 = l * (3);
      if (!eq(arr[4], l2) || !eq(arr[5], l2) || !eq(arr[6], l2)) return;
      if (!eq(arr[7], l3)) return;
    }
    cout << "YES" << endl;
    for (long long i = 0; i < 8; ++i) {
      for (long long j = 0; j < 3; ++j) {
        cout << p[i][j] << " ";
      }
      cout << endl;
    }
    exit(0);
  }
  for (long long i = 0; i < 3; i++) {
    p[id][i] = pp[id][i];
  }
  do {
    bt(id + 1);
  } while (next_permutation(p[id], p[id] + 3));
}
int main() {
  ios_base::sync_with_stdio(false);
  for (long long i = 0; i < 8; ++i) {
    for (long long j = 0; j < 3; ++j) {
      cin >> pp[i][j];
    }
  }
  for (long long i = 0; i < 8; i++) {
    sort(pp[i], pp[i] + 3);
  }
  bt(0);
  cout << "NO" << endl;
  return 0;
}
