#include <bits/stdc++.h>
using namespace std;
long long nums[8][3];
bool check_point(int i) {
  if (i < 2) {
    return true;
  } else {
    return false;
  }
}
bool check_points() {
  long long val0 = 0;
  long long val1 = 0;
  long long val2 = 0;
  int val_count[3] = {0, 0, 0};
  for (int i = 0; i < 8; i++) {
    long long* curr = nums[i];
    val_count[0] = 0;
    val_count[1] = 0;
    val_count[2] = 0;
    for (int j = 0; j < 8; j++) {
      if (j != i) {
        long long a = nums[j][0] - curr[0];
        long long b = nums[j][1] - curr[1];
        long long c = nums[j][2] - curr[2];
        long long dist = a * a + b * b + c * c;
        if (val0 == 0 || val0 == dist) {
          val0 = dist;
          val_count[0]++;
        } else if (val1 == 0 || val1 == dist) {
          val1 = dist;
          val_count[1]++;
        } else if (val2 == 0 || val2 == dist) {
          val2 = dist;
          val_count[2]++;
        } else {
          return false;
        }
      }
    }
    if (val0 > val1 && val0 > val2) {
      if (!(val_count[0] == 1 && val_count[1] == 3 && val_count[2] == 3)) {
        return false;
      }
    } else if (val1 > val0 && val1 > val2) {
      if (!(val_count[1] == 1 && val_count[0] == 3 && val_count[2] == 3)) {
        return false;
      }
    } else if (val2 > val1 && val2 > val0) {
      if (!(val_count[2] == 1 && val_count[1] == 3 && val_count[0] == 3)) {
        return false;
      }
    } else {
      return false;
    }
  }
  return true;
}
bool recur(int i) {
  if (i == 8) {
    return check_points();
  } else {
    long long* v = nums[i];
    sort(v, v + 3);
    do {
      if (recur(i + 1)) {
        return true;
      }
    } while (next_permutation(v, v + 3));
    return false;
  }
}
int main() {
  for (int i = 0; i < 8; i++) {
    for (int j = 0; j < 3; j++) {
      cin >> nums[i][j];
    }
  }
  if (recur(0)) {
    cout << "YES" << endl;
    for (int i = 0; i < 8; i++) {
      for (int j = 0; j < 3; j++) {
        cout << nums[i][j] << " ";
      }
      cout << endl;
    }
  } else {
    cout << "NO" << endl;
  }
  return 0;
}
