#include <bits/stdc++.h>
using namespace std;
int a[8], b[8], c[8];
int ar[8], br[8], cr[8], bs[8];
long long dist(long long a, long long b) { return (a - b) * (a - b); }
int check(int n) {
  int nc = n;
  for (int i = 0; i < 8; i++) {
    bs[i] = nc % 6;
    nc /= 6;
  }
  for (int i = 0; i < 8; i++) {
    if (bs[i] == 0) {
      ar[i] = a[i];
      br[i] = b[i];
      cr[i] = c[i];
    }
    if (bs[i] == 1) {
      ar[i] = a[i];
      br[i] = c[i];
      cr[i] = b[i];
    }
    if (bs[i] == 2) {
      ar[i] = b[i];
      br[i] = a[i];
      cr[i] = c[i];
    }
    if (bs[i] == 3) {
      ar[i] = b[i];
      br[i] = c[i];
      cr[i] = a[i];
    }
    if (bs[i] == 4) {
      ar[i] = c[i];
      br[i] = a[i];
      cr[i] = b[i];
    }
    if (bs[i] == 5) {
      ar[i] = c[i];
      br[i] = b[i];
      cr[i] = a[i];
    }
  }
  vector<long long> v;
  for (int i = 0; i < 8; i++) {
    for (int j = i + 1; j < 8; j++) {
      v.push_back(dist(ar[i], ar[j]) + dist(br[i], br[j]) + dist(cr[i], cr[j]));
    }
  }
  sort(v.begin(), v.end());
  if (v[0] == v[11] and v[12] == v[23] and v[24] == v[27] and
      v[0] * 2 == v[12] and v[0] * 3 == v[27] and v[0] != v[12] and
      v[12] != v[24]) {
    cout << "YES\n";
    for (int i = 0; i < 8; i++)
      cout << ar[i] << " " << br[i] << " " << cr[i] << "\n";
    return 1;
  } else
    return 0;
}
int main() {
  ios::sync_with_stdio(false);
  for (int i = 0; i < 8; i++) {
    cin >> a[i] >> b[i] >> c[i];
  }
  for (int i = 0; i < 279936; i++) {
    if (check(i) == 1) {
      return 0;
    }
  }
  cout << "NO\n";
  return 0;
}
