#include <bits/stdc++.h>
inline int Get() {
  char ch;
  while ((ch = getchar()) < '0' || ch > '9')
    ;
  int Num = ch - '0';
  while ((ch = getchar()) >= '0' && ch <= '9')
    Num = (Num << 3) + (Num << 1) + ch - '0';
  return Num;
}
const int M = 3e3 + 5;
const int m = 3000;
int n, a[M][M], s[M][M], r[M][M], d[M][M];
int main() {
  n = Get();
  for (int i = 1; i <= n; ++i) {
    int x0 = Get(), y0 = Get(), x1 = Get(), y1 = Get();
    for (int x = x0 + 1; x <= x1; ++x)
      for (int y = y0 + 1; y <= y1; ++y) a[x][y] = i;
  }
  for (int i = 1; i <= m; ++i)
    for (int j = 1; j <= m; ++j)
      s[i][j] = (!a[i][j]) + s[i][j - 1] + s[i - 1][j] - s[i - 1][j - 1];
  for (int i = m; ~i; --i)
    for (int j = m; ~j; --j) {
      r[i][j] = a[i][j + 1] == a[i + 1][j + 1] ? 0 : r[i][j + 1] + 1;
      d[i][j] = a[i + 1][j] == a[i + 1][j + 1] ? 0 : d[i + 1][j] + 1;
    }
  for (int i = 0; i < m; ++i)
    for (int j = 0; j < m; ++j)
      for (int k = 1; k <= r[i][j] && k <= d[i][j] &&
                      !(s[i + k][j + k] - s[i][j + k] - s[i + k][j] + s[i][j]);
           ++k)
        if (k <= r[i + k][j] && k <= d[i][j + k]) {
          std ::vector<int> ans;
          for (int x = i + 1; x <= i + k; ++x)
            for (int y = j + 1; y <= j + k; ++y) ans.push_back(a[x][y]);
          std ::sort(ans.begin(), ans.end()),
              ans.erase(std ::unique(ans.begin(), ans.end()), ans.end());
          printf("YES %d\n", ans.size());
          for (int k = 0, sze = ans.size(); k < sze; ++k) printf("%d ", ans[k]);
          putchar('\n');
          return 0;
        }
  puts("NO");
  return 0;
}
