#include <bits/stdc++.h>
using namespace std;
int g[3010][3010];
short u[3010][3010], d[3010][3010];
short l[3010][3010], r[3010][3010];
int n, u1, v1, u2, v2;
int q[6600];
bool ok(int x, int y) {
  int hh = 0, tt = 0;
  for (int i = x, j = y; i <= 3000 && j <= 3000; ++i, ++j) {
    q[tt++] = i - 1;
    q[tt++] = j - 1;
    while (hh < tt) {
      int ii = q[hh], jj = q[hh + 1];
      if (g[i][j] - g[i][jj] - g[ii][j] + g[ii][jj] != (i - ii) * (j - jj))
        hh += 2;
      else
        break;
    }
    while (hh < tt) {
      int ii = q[tt - 2], jj = q[tt - 1];
      if (u[ii][jj] < j)
        tt -= 2;
      else
        break;
    }
    if (hh != tt) {
      int ii = q[tt - 2], jj = q[tt - 1];
      if (d[i][j] > jj) continue;
      u1 = ii;
      v1 = jj;
      u2 = i;
      v2 = j;
      return true;
    }
  }
  return false;
}
bool gao() {
  for (int j = 3000; j > 0; --j)
    if (ok(1, j)) return true;
  for (int i = 2; i <= 3000; ++i)
    if (ok(i, 1)) return true;
  return false;
}
int a1[110000], b1[110000], a2[110000], b2[110000];
vector<int> res;
int main() {
  scanf("%d", &n);
  for (int ii = 1; ii <= n; ++ii) {
    scanf("%d %d %d %d", &u1, &v1, &u2, &v2);
    a1[ii] = u1;
    b1[ii] = v1;
    a2[ii] = u2;
    b2[ii] = v2;
    for (int i = u1 + 1; i <= u2; ++i)
      for (int j = v1 + 1; j <= v2; ++j) g[i][j]++;
    for (int i = v1; i < v2; ++i) u[u1][i] = 1;
    for (int i = v2; i > v1; --i) d[u2][i] = 1;
    for (int i = u1; i < u2; ++i) r[i][v1] = 1;
    for (int i = u2; i > u1; --i) l[i][v2] = 1;
  }
  for (int i = 0; i <= 3000; ++i)
    for (int j = 3000; j > 0; --j)
      if (u[i][j - 1]) u[i][j - 1] += u[i][j];
  for (int i = 0; i <= 3000; ++i)
    for (int j = 1; j <= 3000; ++j)
      if (d[i][j]) d[i][j] += d[i][j - 1];
  for (int i = 3000; i > 0; --i)
    for (int j = 0; j <= 3000; ++j)
      if (r[i - 1][j]) r[i - 1][j] += r[i][j];
  for (int i = 1; i <= 3000; ++i)
    for (int j = 0; j <= 3000; ++j)
      if (l[i][j]) l[i][j] += l[i - 1][j];
  for (int i = 1; i <= 3000; ++i)
    for (int j = 0; j <= 3000; ++j) g[i][j] += g[i - 1][j];
  for (int j = 1; j <= 3000; ++j)
    for (int i = 0; i <= 3000; ++i) g[i][j] += g[i][j - 1];
  for (int i = 0; i <= 3000; ++i)
    for (int j = 0; j <= 3000; ++j)
      u[i][j] = j + min(u[i][j], r[i][j]), d[i][j] = j - min(l[i][j], d[i][j]);
  if (gao()) {
    printf("YES");
    for (int i = 1; i <= n; ++i) {
      if (a1[i] >= u2 || a2[i] <= u1) continue;
      if (b1[i] >= v2 || b2[i] <= v1) continue;
      res.push_back(i);
    }
    printf(" %d\n%d", res.size(), res[0]);
    for (int i = 1; i < res.size(); ++i) printf(" %d", res[i]);
    puts("");
  } else
    puts("NO");
  return 0;
}
