#include <bits/stdc++.h>
using namespace std;
pair<long long, long long> A[10];
long long dist(pair<long long, long long> A, pair<long long, long long> B) {
  return (A.first - B.first) * (A.first - B.first) +
         (A.second - B.second) * (A.second - B.second);
}
bool is_square(pair<long long, long long> A, pair<long long, long long> B,
               pair<long long, long long> C, pair<long long, long long> D) {
  return dist(A, B) == dist(B, C) && dist(C, D) == dist(B, C) &&
         dist(A, D) == dist(B, C) && dist(A, C) == dist(B, D);
}
bool is_rectangle(pair<long long, long long> A, pair<long long, long long> B,
                  pair<long long, long long> C, pair<long long, long long> D) {
  return dist(A, B) == dist(C, D) && dist(A, C) == dist(B, D) &&
         dist(A, C) == dist(A, B) + dist(B, C) &&
         dist(B, D) == dist(B, A) + dist(A, D);
}
bool all_permutation(int i, vector<pair<long long, long long> > A) {
  int j, k = false;
  if (i == 3)
    if (is_rectangle(A[0], A[1], A[2], A[3])) return true;
  for (j = i; j < 4; j++) {
    swap(A[i], A[j]);
    k = k || all_permutation(i + 1, A);
    swap(A[i], A[j]);
  }
  return k;
}
int main() {
  vector<pair<long long, long long> > temp;
  vector<long long> bump;
  long long i, j, k, l, r, p, q;
  for (i = 0; i < 8; i++) scanf("%I64d%I64d", &A[i].first, &A[i].second);
  for (i = 0; i < 8; i++) {
    for (j = 0; j < 8; j++) {
      if (i != j) {
        for (k = 0; k < 8; k++) {
          if (k != i && k != j) {
            for (l = 0; l < 8; l++) {
              if (l != i && l != j && l != k) {
                if (is_square(A[i], A[j], A[k], A[l])) {
                  for (r = 0; r < 8; r++) {
                    if (r != i && r != j && r != k && r != l) {
                      temp.push_back(A[r]);
                      bump.push_back(r);
                    }
                  }
                  if (all_permutation(0, temp)) {
                    printf("YES\n");
                    printf("%I64d %I64d %I64d %I64d\n", i + 1, j + 1, k + 1,
                           l + 1);
                    printf("%I64d %I64d %I64d %I64d\n", bump[0] + 1,
                           bump[1] + 1, bump[2] + 1, bump[3] + 1);
                    return 0;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  printf("NO\n");
  return 0;
}
