#include <bits/stdc++.h>
int d1, d2, d3, d4, dd1, dd2, dd3, dd4, d5, d6, x1, x2, dd5, dd6;
int x[10], y[10], a[10], b[10], n, p[10], d[10], i, k;
bool was[10];
using namespace std;
void perebor(int len) {
  int j;
  if (len > 8) {
    if (sqrt((x[1] - x[2]) * (x[1] - x[2]) + (y[1] - y[2]) * (y[1] - y[2])) ==
        sqrt((x[2] - x[3]) * (x[2] - x[3]) + (y[2] - y[3]) * (y[2] - y[3])))
      if (sqrt((x[2] - x[3]) * (x[2] - x[3]) + (y[2] - y[3]) * (y[2] - y[3])) ==
          sqrt((x[3] - x[4]) * (x[3] - x[4]) + (y[3] - y[4]) * (y[3] - y[4])))
        if (sqrt((x[3] - x[4]) * (x[3] - x[4]) +
                 (y[3] - y[4]) * (y[3] - y[4])) ==
            sqrt((x[1] - x[4]) * (x[1] - x[4]) + (y[1] - y[4]) * (y[1] - y[4])))
          if (sqrt((x[2] - x[4]) * (x[2] - x[4]) +
                   (y[2] - y[4]) * (y[2] - y[4])) ==
              sqrt((x[1] - x[3]) * (x[1] - x[3]) +
                   (y[1] - y[3]) * (y[1] - y[3])))
            if (sqrt((x[5] - x[6]) * (x[5] - x[6]) +
                     (y[5] - y[6]) * (y[5] - y[6])) ==
                sqrt((x[7] - x[8]) * (x[7] - x[8]) +
                     (y[7] - y[8]) * (y[7] - y[8])))
              if (sqrt((x[5] - x[8]) * (x[5] - x[8]) +
                       (y[5] - y[8]) * (y[5] - y[8])) ==
                  sqrt((x[6] - x[7]) * (x[6] - x[7]) +
                       (y[6] - y[7]) * (y[6] - y[7])))
                if (sqrt((x[6] - x[8]) * (x[6] - x[8]) +
                         (y[6] - y[8]) * (y[6] - y[8])) ==
                    sqrt((x[5] - x[7]) * (x[5] - x[7]) +
                         (y[5] - y[7]) * (y[5] - y[7]))) {
                  printf("YES\n");
                  for (i = 1; i <= 4; i++) p[i] = d[i];
                  sort(p + 1, p + 4 + 1);
                  for (i = 1; i <= 4; i++) printf("%d ", p[i]);
                  printf("\n");
                  for (i = 1; i <= 4; i++) p[i] = d[i + 4];
                  sort(p + 1, p + 4 + 1);
                  for (i = 1; i <= 4; i++) printf("%d ", p[i]);
                  exit(0);
                }
    return;
  }
  for (j = 1; j <= 8; j++)
    if (was[j] == false) {
      was[j] = true;
      x[len] = a[j];
      y[len] = b[j];
      d[len] = j;
      perebor(len + 1);
      was[j] = false;
    }
}
int main() {
  for (i = 1; i <= 8; i++) {
    scanf("%d%d", &a[i], &b[i]);
  }
  perebor(1);
  printf("NO");
  return 0;
}
