func_code_string: #include <bits/stdc++.h>   using namespace std;   int cube[8][3];   long long len[28];   long long dist(int a, int b) {     long long ret = 0;     for (int i = 0; i < 3; i++)       ret += (long long)(cube[a][i] - cube[b][i]) * (cube[a][i] - cube[b][i]);     return ret;   }   bool check() {     int idx = 0;     for (int i = 0; i < 8; i++)       for (int j = i + 1; j < 8; j++) len[idx++] = dist(i, j);     sort(len, len + 28);     for (int i = 1; i < 12; i++)       if (len[i] != len[i - 1] || len[i] == 0) return false;     for (int i = 13; i < 24; i++)       if (len[i] != len[i - 1]) return false;     for (int i = 25; i < 28; i++)       if (len[i] != len[i - 1]) return false;     if (len[0] * 2 != len[12] || len[0] * 3 != len[24]) return false;     return true;   }   bool go(int idx) {     if (idx == 8) return check();     do {       if (go(idx + 1)) return true;     } while (next_permutation(cube[idx], cube[idx] + 3));     return false;   }   int main() {     for (int i = 0; i < 8; i++) cin >> cube[i][0] >> cube[i][1] >> cube[i][2];     for (int i = 0; i < 8; i++) sort(cube[i], cube[i] + 3);     if (go(1)) {       cout <<  YES n ;       for (int i = 0; i < 8; i++)         cout << cube[i][0] <<     << cube[i][1] <<     << cube[i][2] <<   n ;       return 0;     }     cout <<  NO n ;     return 0;   }   