#include <bits/stdc++.h>
using namespace std;
int f1[10], f2[10];
int x[10], y[10];
int l[10] = {0, 1, 2, 3, 4, 5, 6, 7};
bool pr(int f[]) {
  int ax, ay, bx, by;
  for (int i = 0; i < 4; i++) {
    ax = x[f[i]] - x[f[(i + 1) % 4]];
    ay = y[f[i]] - y[f[(i + 1) % 4]];
    bx = x[f[(i + 1) % 4]] - x[f[(i + 2) % 4]];
    by = y[f[(i + 1) % 4]] - y[f[(i + 2) % 4]];
    if (ax * bx + ay * by != 0) {
      return 0;
    }
    if (ax == 0 && ay == 0 || bx == 0 && by == 0) {
      return 0;
    }
  }
  return 1;
}
bool kv(int f[]) {
  int d;
  for (int i = 0; i < 4; i++) {
    if (i == 0) {
      d = (x[f[i]] - x[f[(i + 1) % 4]]) * (x[f[i]] - x[f[(i + 1) % 4]]) +
          (y[f[i]] - y[f[(i + 1) % 4]]) * (y[f[i]] - y[f[(i + 1) % 4]]);
    }
    if (d !=
        (x[f[i]] - x[f[(i + 1) % 4]]) * (x[f[i]] - x[f[(i + 1) % 4]]) +
            (y[f[i]] - y[f[(i + 1) % 4]]) * (y[f[i]] - y[f[(i + 1) % 4]])) {
      return 0;
    }
  }
  return 1;
}
int main() {
  for (int i = 0; i < 8; i++) {
    cin >> x[i] >> y[i];
  }
  for (int i = 0; i < 40320; i++) {
    for (int j = 0; j < 4; j++) {
      f1[j] = l[j];
      f2[j] = l[j + 4];
    }
    if (pr(f1) && pr(f2) && kv(f1)) {
      cout << "YES" << endl;
      for (int i = 0; i < 4; i++) {
        cout << f1[i] + 1 << " ";
      }
      cout << endl;
      for (int i = 0; i < 4; i++) {
        cout << f2[i] + 1 << " ";
      }
      return 0;
    }
    next_permutation(l, l + 8);
  }
  cout << "NO";
  return 0;
}
