func_code_string: #include <bits/stdc++.h>   using namespace std;   int x[100], y[100];   int l1, l2, l3, l4, s, f[10], n;   int len(int g1, int g2) {     int res =         (((x[g1] - x[g2]) * (x[g1] - x[g2]) + (y[g1] - y[g2]) * (y[g1] - y[g2])));     return res;   }   bool prr(int kk1, int kk2, int kk3, int kk4) {     int ii, jj = 0, aa[4], kk, qq;     for (ii = 0; ii < 8; ii++)       if (ii != kk1 && ii != kk2 && ii != kk3 && ii != kk4) {         aa[jj++] = ii;       }     for (ii = 0; ii < 4; ii++)       for (jj = 0; jj < 4; jj++)         for (kk = 0; kk < 4; kk++)           for (qq = 0; qq < 4; qq++)             if (ii != jj && ii != kk && ii != qq && jj != kk && jj != qq &&                 kk != qq)               if (len(aa[ii], aa[jj]) == len(aa[kk], aa[qq]) &&                   len(aa[ii], aa[jj]) ==                       len(aa[ii], aa[kk]) + len(aa[ii], aa[qq]) &&                   len(aa[qq], aa[kk]) ==                       len(aa[ii], aa[kk]) + len(aa[jj], aa[kk]) &&                   len(aa[ii], aa[qq]) == len(aa[kk], aa[jj]) &&                   len(aa[ii], aa[kk]) == len(aa[jj], aa[qq]))                 return true;     return false;   }   bool kv(int q1, int q2, int q3, int q4) {     int i, a[4], j, k, q;     a[0] = q1;     a[1] = q2;     a[2] = q3;     a[3] = q4;     for (i = 0; i < 4; i++)       for (j = 0; j < 4; j++)         for (k = 0; k < 4; k++)           for (q = 0; q < 4; q++)             if (i != j && j != k && i != k && i != q && j != q && k != q) {               if (len(a[i], a[j]) == len(a[k], a[q]) &&                   len(a[i], a[j]) == len(a[i], a[q]) + len(a[i], a[k]) &&                   len(a[i], a[k]) == len(a[i], a[q]) &&                   len(a[k], a[q]) == len(a[k], a[i]) + len(a[k], a[j]) &&                   len(a[q], a[i]) == len(a[q], a[j])) {                 if (prr(q1, q2, q3, q4)) return true;               }             }     return false;   }   int main() {     for (l1 = 0; l1 < 8; l1++) scanf( %d %d , &x[l1], &y[l1]);     for (l1 = 0; l1 < 8; l1++)       for (l2 = 0; l2 < 8; l2++)         for (l3 = 0; l3 < 8; l3++)           for (l4 = 0; l4 < 8; l4++)             if (l1 != l2 && l1 != l3 && l1 != l4 && l2 != l3 && l2 != l4 &&                 l3 != l4 && kv(l1, l2, l3, l4)) {               printf( YES n );               printf( %d %d %d %d n , l1 + 1, l2 + 1, l3 + 1, l4 + 1);               for (s = 0; s < 8; s++)                 if (s != l1 && s != l2 && s != l3 && s != l4) f[n++] = s;               for (s = 0; s < 3; s++) printf( %d  , f[s] + 1);               printf( %d n , f[3] + 1);               return 0;             }     printf( NO n );     return 0;   }   