#include <bits/stdc++.h>
using namespace std;
long long int first[8] = {0};
vector<pair<long long int, long long int> > v;
vector<long long int> d;
long long int x[8], y[8];
long long int dist(pair<long long int, long long int> a,
                   pair<long long int, long long int> b) {
  return (a.first - b.first) * (a.first - b.first) +
         (a.second - b.second) * (a.second - b.second);
}
bool lin(pair<long long int, long long int> a,
         pair<long long int, long long int> b,
         pair<long long int, long long int> c) {
  if ((a.first - b.first) * (b.second - c.second) ==
      (a.second - b.second) * (b.first - c.first))
    return 1;
  return 0;
}
bool issq() {
  v.clear();
  for (int i = 0; i < 8; i++) {
    if (first[i]) v.push_back(make_pair(x[i], y[i]));
  }
  d.clear();
  for (int i = 0; i < v.size(); i++) {
    for (int j = i + 1; j < v.size(); j++) {
      d.push_back(dist(v[i], v[j]));
    }
  }
  sort(d.begin(), d.end());
  if (d[5] == d[4] and d[1] == d[0] and d[2] == d[0] and d[3] == d[0] and
      2 * d[0] == d[4]) {
    if (lin(v[0], v[1], v[2])) return 0;
    if (lin(v[0], v[1], v[3])) return 0;
    if (lin(v[0], v[2], v[3])) return 0;
    if (lin(v[1], v[2], v[3])) return 0;
    return 1;
  }
  return 0;
}
bool isrec() {
  v.clear();
  for (int i = 0; i < 8; i++) {
    if (!first[i]) v.push_back(make_pair(x[i], y[i]));
  }
  d.clear();
  for (int i = 0; i < v.size(); i++) {
    for (int j = i + 1; j < v.size(); j++) {
      d.push_back(dist(v[i], v[j]));
    }
  }
  sort(d.begin(), d.end());
  if (d[5] == d[4] and d[1] == d[0] and d[2] == d[3] and d[0] + d[2] == d[4]) {
    if (lin(v[0], v[1], v[2])) return 0;
    if (lin(v[0], v[1], v[3])) return 0;
    if (lin(v[0], v[2], v[3])) return 0;
    if (lin(v[1], v[2], v[3])) return 0;
    return 1;
  }
  return 0;
}
void bt(long long int i, long long int cnt) {
  if (i == 8) {
    if (issq() and isrec()) {
      cout << "YES\n";
      for (int i = 0; i < 8; i++)
        if (first[i]) cout << i + 1 << " ";
      cout << "\n";
      for (int i = 0; i < 8; i++)
        if (!first[i]) cout << i + 1 << " ";
      cout << "\n";
      exit(0);
    }
    return;
  }
  if (cnt < 4) {
    first[i] = 1;
    bt(i + 1, cnt + 1);
    first[i] = 0;
  }
  bt(i + 1, cnt);
}
int main() {
  for (int i = 0; i < 8; i++) cin >> x[i] >> y[i];
  bt(0, 0);
  cout << "NO";
}
