#include <bits/stdc++.h>
using namespace std;
long long p[10][5];
int order[10][5];
bool ok() {
  long long dis[35];
  for (int i = 1; i <= 8; i++) {
    int cnt = 0;
    for (int j = 1; j <= 8; j++) {
      if (i == j) continue;
      dis[cnt] = 0;
      dis[cnt] += (p[i][order[i][0]] - p[j][order[j][0]]) *
                  (p[i][order[i][0]] - p[j][order[j][0]]);
      dis[cnt] += (p[i][order[i][1]] - p[j][order[j][1]]) *
                  (p[i][order[i][1]] - p[j][order[j][1]]);
      dis[cnt] += (p[i][order[i][2]] - p[j][order[j][2]]) *
                  (p[i][order[i][2]] - p[j][order[j][2]]);
      cnt++;
    }
    sort(dis, dis + cnt);
    if (dis[0] == 0) return false;
    if (dis[0] != dis[1] || dis[0] != dis[2] || dis[1] != dis[2]) return false;
    if (dis[3] != dis[4] || dis[3] != dis[5] || dis[4] != dis[5]) return false;
    if (dis[0] * 2 != dis[3] || dis[0] * 3 != dis[6]) return false;
  }
  return true;
}
int main() {
  for (int i = 1; i <= 8; i++)
    for (int j = 0; j < 3; j++) {
      cin >> p[i][j], order[i][j] = j;
    }
  bool flag = false;
  do {
    do {
      do {
        do {
          do {
            do {
              do {
                do {
                  if (ok()) {
                    flag = true;
                    break;
                  }
                } while (next_permutation(order[1], order[1] + 3));
                if (flag) break;
              } while (next_permutation(order[2], order[2] + 3));
              if (flag) break;
            } while (next_permutation(order[3], order[3] + 3));
            if (flag) break;
          } while (next_permutation(order[4], order[4] + 3));
          if (flag) break;
        } while (next_permutation(order[5], order[5] + 3));
        if (flag) break;
      } while (next_permutation(order[6], order[6] + 3));
      if (flag) break;
    } while (next_permutation(order[7], order[7] + 3));
    if (flag) break;
  } while (next_permutation(order[8], order[8] + 3));
  if (flag) {
    printf("YES\n");
    for (int i = 1; i <= 8; i++)
      cout << p[i][order[i][0]] << ' ' << p[i][order[i][1]] << ' '
           << p[i][order[i][2]] << endl;
  } else
    printf("NO\n");
  return 0;
}
