#include <bits/stdc++.h>
using namespace std;
int f;
long long int a[10][10];
vector<long long int> v;
int check() {
  long long int temp;
  int var = 1;
  for (int k = 0; k < 8; k++) {
    v.clear();
    for (int i = 0; i < 8; i++) {
      if (i == k) continue;
      temp = 0;
      for (int j = 0; j < 3; j++)
        temp += (a[k][j] - a[i][j]) * (a[k][j] - a[i][j]);
      v.push_back(temp);
    }
    sort(v.begin(), v.end());
    if (v[0] && (v[0] == v[1] && v[1] == v[2]) &&
        (v[3] == v[4] && v[4] == v[5]) &&
        (2 * v[0] == v[3] || 3 * v[0] == v[6]))
      var &= 1;
    else
      var &= 0;
  }
  return var;
}
void permute(int n) {
  if (f) return;
  if (n == 8) {
    if (check()) f = 1;
    return;
  }
  permute(n + 1);
  if (f) return;
  while (next_permutation(a[n], a[n] + 3)) {
    permute(n + 1);
    if (f) return;
  }
  sort(a[n], a[n] + 3);
}
int main() {
  ios_base::sync_with_stdio(0);
  for (int i = 0; i < 8; i++) {
    for (int j = 0; j < 3; j++) cin >> a[i][j];
    sort(a[i], a[i] + 3);
  }
  permute(1);
  if (f) {
    cout << "YES\n";
    for (int i = 0; i < 8; i++) {
      for (int j = 0; j < 3; j++) cout << a[i][j] << " ";
      cout << "\n";
    }
  } else
    cout << "NO\n";
  return 0;
}
