func_code_string: #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;   }   