#include <bits/stdc++.h>
using namespace std;
int e1[3333][3333], num[3333][3333], s[3333][3333], l[3333][3333],
    e2[3333][3333];
int main() {
  int n;
  scanf("%d", &n);
  for (int t = 1; t <= n; t++) {
    int x1, x2, y1, y2;
    scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    num[y1][x1] = t;
    l[y1][x1] = max(x2 - x1, y2 - y1);
    s[y1][x1] = (y2 - y1) * (x2 - x1);
    x2--;
    y2--;
    for (int j = x1 + 1; j <= x2; j++) e1[y1][j]++;
    for (int i = y1 + 1; i <= y2; i++) e2[i][x1]++;
  }
  for (int i = 0; i <= 3000; i++)
    for (int j = 0; j <= 3000; j++) {
      if (i > 0) e1[i][j] += e1[i - 1][j];
      if (j > 0) e2[i][j] += e2[i][j - 1];
      if (i > 0) s[i][j] += s[i - 1][j];
      if (j > 0) s[i][j] += s[i][j - 1];
      if (i * j > 0) s[i][j] -= s[i - 1][j - 1];
    }
  for (int x1 = 0; x1 <= 3000; x1++)
    for (int y1 = 0; y1 <= 3000; y1++)
      if (num[y1][x1] > 0)
        for (int len = l[y1][x1]; x1 + len - 1 <= 3000 && y1 + len - 1 <= 3000;
             len++) {
          int y2 = y1 + len - 1, x2 = x1 + len - 1;
          int S = s[y2][x2];
          if (x1 > 0) S -= s[y2][x1 - 1];
          if (y1 > 0) S -= s[y1 - 1][x2];
          if (x1 * y1 > 0) S += s[y1 - 1][x1 - 1];
          bool flag = true;
          int E = e1[y2][x2 + 1];
          if (y1 > 0) E -= e1[y1 - 1][x2 + 1];
          if (E != 0) flag = false;
          E = e2[y2 + 1][x2];
          if (x1 > 0) E -= e2[y2 + 1][x1 - 1];
          if (E != 0) flag = false;
          if (S == len * len && flag) {
            vector<int> ans;
            for (int i = y1; i <= y2; i++)
              for (int j = x1; j <= x2; j++)
                if (num[i][j] > 0) ans.push_back(num[i][j]);
            printf("YES %d\n", ans.size());
            for (int i = 0; i < ans.size(); i++) printf("%d ", ans[i]);
            return 0;
          }
          if (S < len * len) break;
        }
  printf("NO");
  return 0;
}
