#include <bits/stdc++.h>
using namespace std;
struct point {
  int x[4];
} a[10], b[10];
int p[10][5];
int k[10];
long long dis(point a, point b) {
  return (long long)(a.x[3] - b.x[3]) * (long long)(a.x[3] - b.x[3]) +
         (long long)(a.x[1] - b.x[1]) * (long long)(a.x[1] - b.x[1]) +
         (long long)(a.x[2] - b.x[2]) * (long long)(a.x[2] - b.x[2]);
}
int pr[10][5];
bool perpendicular(int i, int j, int k) {
  long long ret = 0;
  for (int t = 1; t <= 3; t++) {
    ret +=
        (long long)(b[i].x[t] - b[j].x[t]) * (long long)(b[i].x[t] - b[k].x[t]);
  }
  return ret == 0;
}
bool solve() {
  long long Min = 1LL << 62;
  for (int i = 1; i <= 8; i++) {
    for (int j = 1; j <= 3; j++) {
      b[i].x[j] = a[i].x[p[k[i]][j]];
    }
  }
  for (int i = 1; i <= 8; i++) {
    int cnt = 0;
    for (int j = 1; j <= 8; j++) {
      if (i == j) continue;
      long long d = dis(b[i], b[j]);
      if (d < Min) {
        if (i != 1) return false;
        Min = d;
        if (Min == 0) return false;
        cnt = 1;
        pr[i][cnt] = j;
      } else if (d == Min) {
        cnt++;
        pr[i][cnt] = j;
      }
    }
    if (cnt != 3) return false;
  }
  for (int i = 1; i <= 8; i++) {
    if (!perpendicular(i, pr[i][1], pr[i][2])) return false;
    if (!perpendicular(i, pr[i][2], pr[i][3])) return false;
    if (!perpendicular(i, pr[i][1], pr[i][3])) return false;
  }
  return true;
}
bool dfs(int x) {
  if (x == 9) {
    if (solve()) return true;
    return false;
  }
  for (int i = 1; i <= 6; i++) {
    k[x] = i;
    if (dfs(x + 1)) return true;
  }
  return false;
}
int main() {
  int f[5], cnt;
  for (int i = 1; i <= 3; i++) f[i] = i;
  cnt = 1;
  do {
    for (int i = 1; i <= 3; i++) {
      p[cnt][i] = f[i];
    }
    cnt++;
  } while (next_permutation(f + 1, f + 4));
  for (int i = 1; i <= 8; i++) {
    scanf("%d%d%d", &a[i].x[1], &a[i].x[2], &a[i].x[3]);
  }
  if (dfs(1)) {
    printf("YES\n");
    for (int i = 1; i <= 8; i++) {
      for (int j = 1; j <= 3; j++) printf("%d ", b[i].x[j]);
      printf("\n");
    }
  } else
    printf("NO\n");
  return 0;
}
