#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
struct Rect {
  int x1, y1, x2, y2;
} rect[MAXN];
int S[3005][3005];
int rects[3005][3005];
int numvert[3005][3005];
int numhor[3005][3005];
int leftex[MAXN];
int downex[MAXN];
int n;
void checksq(int x2, int y2, int len) {
  int x1 = x2 - len + 1;
  int y1 = y2 - len + 1;
  if (x1 < 1 || y1 < 1) return;
  int tot = S[x2][y2] - S[x1 - 1][y2] - S[x2][y1 - 1] + S[x1 - 1][y1 - 1];
  if (tot != len * len) return;
  if (numhor[x1][y2] - numhor[x1][y1 - 1]) return;
  if (numhor[x2 + 1][y2] - numhor[x2 + 1][y1 - 1]) return;
  if (numvert[y1][x2] - numvert[y1][x1 - 1]) return;
  if (numvert[y2 + 1][x2] - numvert[y2 + 1][x1 - 1]) return;
  vector<int> ans;
  for (int i = 1; i <= n; ++i) {
    if (rect[i].x1 >= x1 && rect[i].x2 <= x2 && rect[i].y1 >= y1 &&
        rect[i].y2 <= y2) {
      ans.push_back(i);
    }
  }
  printf("YES %d\n", ans.size());
  for (int a : ans) printf("%d ", a);
  exit(0);
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    int x1, y1, x2, y2;
    scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    ++x1;
    ++y1;
    rect[i] = {x1, y1, x2, y2};
    rects[x2][y2] = i;
    for (int x = x1; x <= x2; ++x)
      for (int y = y1; y <= y2; ++y) {
        S[x][y] = 1;
        if (x > x1) ++numhor[x][y];
        if (y > y1) ++numvert[y][x];
      }
  }
  for (int i = 1; i <= 3000; ++i)
    for (int j = 1; j <= 3000; ++j) {
      S[i][j] += S[i - 1][j] + S[i][j - 1] - S[i - 1][j - 1];
      numhor[i][j] += numhor[i][j - 1];
      numvert[i][j] += numvert[i][j - 1];
    }
  for (int i = 1; i <= 3000; ++i)
    for (int j = 1; j <= 3000; ++j) {
      if (!rects[i][j]) continue;
      int r = rects[i][j];
      int lef = rects[rect[r].x1 - 1][rect[r].y2];
      leftex[r] = leftex[lef] + 1;
      int down = rects[rect[r].x2][rect[r].y1 - 1];
      downex[r] = downex[down] + 1;
      if (leftex[r] < downex[r]) {
        for (; r; r = rects[rect[r].x1 - 1][rect[r].y2]) {
          int len = i - rect[r].x1 + 1;
          checksq(i, j, len);
        }
      } else {
        for (; r; r = rects[rect[r].x2][rect[r].y1 - 1]) {
          int len = j - rect[r].y1 + 1;
          checksq(i, j, len);
        }
      }
    }
  printf("NO\n");
}
