#include <bits/stdc++.h>
using namespace std;
long long a[8], b[8];
long long distSq(long long p, long long q) {
  return (a[p] - a[q]) * (a[p] - a[q]) + (b[p] - b[q]) * (b[p] - b[q]);
}
bool sq(long long p1, long long p2, long long p3, long long p4) {
  long long d2 = distSq(p1, p2);
  long long d3 = distSq(p1, p3);
  long long d4 = distSq(p1, p4);
  if (d2 == 0 || d3 == 0 || d4 == 0) return false;
  if (d2 == d3 && 2 * d2 == d4 && 2 * distSq(p2, p4) == distSq(p2, p3)) {
    return true;
  }
  if (d3 == d4 && 2 * d3 == d2 && 2 * distSq(p3, p2) == distSq(p3, p4)) {
    return true;
  }
  if (d2 == d4 && 2 * d2 == d3 && 2 * distSq(p2, p3) == distSq(p2, p4)) {
    return true;
  }
  return false;
}
bool rec(long long i, long long j, long long k, long long l) {
  long long x1 = a[i], y1 = b[i];
  long long x2 = a[j], y2 = b[j];
  long long x3 = a[k], y3 = b[k];
  long long x4 = a[l], y4 = b[l];
  x2 -= x1;
  x3 -= x1;
  x4 -= x1;
  y2 -= y1;
  y3 -= y1;
  y4 -= y1;
  return (x2 + x3 == x4 && y2 + y3 == y4 && x2 * x3 == -y2 * y3) ||
         (x2 + x4 == x3 && y2 + y4 == y3 && x2 * x4 == -y2 * y4) ||
         (x3 + x4 == x2 && y3 + y4 == y2 && x3 * x4 == -y3 * y4);
}
void solve() {
  long long n = 8;
  for (long long i = 0; i < n; i++) cin >> a[i] >> b[i];
  for (long long i = 0; i < n - 3; i++) {
    for (long long j = i + 1; j < n - 2; j++) {
      for (long long k = j + 1; k < n - 1; k++) {
        for (long long l = k + 1; l < n; l++) {
          vector<long long> v;
          for (long long z = 0; z < 8; z++) {
            if (z != i && z != j && z != k && z != l) v.push_back(z);
          }
          if (sq(i, j, k, l) && rec(v[0], v[1], v[2], v[3])) {
            cout << "YES\n";
            cout << i + 1 << " " << j + 1 << " " << k + 1 << " " << l + 1
                 << endl;
            for (long long u : v) cout << u + 1 << " ";
            return;
          }
        }
      }
    }
  }
  cout << "NO\n";
}
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  while (t--) {
    solve();
  }
}
