#include <bits/stdc++.h>
using namespace std;
using namespace std;
double EPS = 1e-8;
pair<int, int> a[8];
vector<pair<int, int> > A, B;
bool ok1() {
  A.push_back(A[0]);
  int d[4];
  for (int i = 0; i < 4; i++) {
    d[i] = (A[i].first - A[i + 1].first) * (A[i].first - A[i + 1].first) +
           (A[i].second - A[i + 1].second) * (A[i].second - A[i + 1].second);
  }
  A.pop_back();
  for (int i = 0; i < 4; i++) {
    if (d[i] != d[0]) return 0;
  }
  int D = (A[0].first - A[2].first) * (A[0].first - A[2].first) +
          (A[0].second - A[2].second) * (A[0].second - A[2].second);
  if (d[0] + d[1] == D) return 1;
  return 0;
}
bool ok2() {
  B.push_back(B[0]);
  int d[4];
  for (int i = 0; i < 4; i++) {
    d[i] = (B[i].first - B[i + 1].first) * (B[i].first - B[i + 1].first) +
           (B[i].second - B[i + 1].second) * (B[i].second - B[i + 1].second);
  }
  B.pop_back();
  if (d[0] != d[2] || d[1] != d[3]) return 0;
  int D = (B[0].first - B[2].first) * (B[0].first - B[2].first) +
          (B[0].second - B[2].second) * (B[0].second - B[2].second);
  if (d[0] + d[1] == D) return 1;
  return 0;
}
int s(vector<pair<int, int> > a) {
  a.push_back(a[0]);
  int s = 0;
  for (int i = 0; i < 4; i++) {
    s += a[i].first * a[i + 1].second - a[i].second * a[i + 1].first;
  }
  return abs(s);
  a.pop_back();
}
int main() {
  for (int i = 0; i < 8; i++) {
    cin >> a[i].first >> a[i].second;
  }
  for (int i = 0; i < (1 << 8); i++) {
    if (i == 240) {
      int k = 0;
    }
    int cnt = 0;
    for (int j = 0; j < 8; j++) {
      if (i & (1 << j)) cnt++;
    }
    if (cnt != 4) continue;
    ;
    A.clear();
    B.clear();
    for (int j = 0; j < 8; j++) {
      if (i & (1 << j))
        A.push_back(a[j]);
      else
        B.push_back(a[j]);
    }
    sort(A.begin(), A.end());
    sort(B.begin(), B.end());
    do {
      do {
        if (ok1())
          if (ok2())
            if (s(A) != 0)
              if (s(B) != 0) {
                cout << "YES" << endl;
                for (int j = 0; j < 8; j++) {
                  if (i & (1 << j)) cout << j + 1 << ' ';
                }
                cout << endl;
                for (int j = 0; j < 8; j++) {
                  if (!(i & (1 << j))) cout << j + 1 << ' ';
                }
                return 0;
              }
      } while (next_permutation(B.begin(), B.end()));
    } while (next_permutation(A.begin(), A.end()));
  }
  cout << "NO" << endl;
  return 0;
}
