#include <bits/stdc++.h>
using namespace std;
int num[8];
complex<int> ps[8];
long long dot(complex<int> a, complex<int> b) {
  return (a.real() * b.real() + a.imag() * b.imag());
}
long long cross(complex<int> a, complex<int> b) {
  return (a.real() * b.imag() - a.imag() * b.real());
}
int ccw(complex<int> a, complex<int> b, complex<int> c) {
  b -= a;
  c -= a;
  if (cross(b, c) > 0) return 1;
  if (cross(b, c) < 0) return -1;
  return 0;
}
bool isR(bool flag) {
  int add = 0;
  if (!flag) add = 4;
  int tmp = 0;
  for (int i = 0; i < 4; i++) {
    tmp += ccw(ps[num[i + add]], ps[num[(i + 1) % 4 + add]],
               ps[num[(i + 2) % 4 + add]]);
    if (dot(ps[num[(i + 1) % 4 + add]] - ps[num[i + add]],
            ps[num[(i + 2) % 4 + add]] - ps[num[(i + 1) % 4 + add]]) != 0)
      return false;
  }
  if (tmp != 4 && tmp != -4) {
    return false;
  }
  return true;
}
bool isS() {
  long long a = (ps[num[0]].real() - ps[num[1]].real()) *
                (ps[num[0]].real() - ps[num[1]].real());
  long long b = (ps[num[0]].imag() - ps[num[1]].imag()) *
                (ps[num[0]].imag() - ps[num[1]].imag());
  long long len = a + b;
  for (int i = 0; i < 4; i++) {
    long long aa = (ps[num[i]].real() - ps[num[(i + 1) % 4]].real()) *
                   (ps[num[i]].real() - ps[num[(i + 1) % 4]].real());
    long long bb = (ps[num[i]].imag() - ps[num[(i + 1) % 4]].imag()) *
                   (ps[num[i]].imag() - ps[num[(i + 1) % 4]].imag());
    if (aa + bb != len) return false;
  }
  return isR(true);
}
int main() {
  for (int i = 0; i < 8; i++) {
    num[i] = i;
    int a, b;
    cin >> a >> b;
    ps[i] = complex<int>(a, b);
  }
  bool f = false;
  do {
    if (isS() && isR(false)) {
      f = true;
      break;
    }
  } while (next_permutation(num, num + 8));
  if (f) {
    cout << "YES" << endl;
    for (int i = 0; i < 4; i++) {
      if (i) cout << " ";
      cout << num[i] + 1;
    }
    cout << endl;
    for (int i = 0; i < 4; i++) {
      if (i) cout << " ";
      cout << num[i + 4] + 1;
    }
    cout << endl;
  } else {
    cout << "NO" << endl;
  }
}
