#define rep(i,n) for(int i=0;i<(int)(n);i++) #define ALL(v) v.begin(),v.end() #include #include namespace mp = boost::multiprecision; using ll = mp::cpp_int; #include using namespace std; int main(){ ios::sync_with_stdio(false); std::cin.tie(nullptr); int n; cin>>n; vector X(n),Y(n); rep(i,n) cin>>X[i]>>Y[i]; vector> P(n); rep(i,n) P[i]={X[i],Y[i]}; sort(ALL(P)); map> m1,m2; rep(i,n){ m1[X[i]].insert(i); m2[Y[i]].insert(i); } set ANS; for(auto [a,b]:m1){ if(b.size()>3){ for(auto x:b) ANS.insert(x); } else if(b.size()==3){ vector T; for(auto x:b) T.push_back(x); ANS.insert(T[0]); ANS.insert(T[2]); } } for(auto [a,b]:m2){ if(b.size()>3){ for(auto x:b) ANS.insert(x); } else if(b.size()==3){ vector T; for(auto x:b) T.push_back(x); ANS.insert(T[0]); ANS.insert(T[2]); } } map,pair>,set> m3; for(int i=0;i3){ for(auto x:b) ANS.insert(x); } else if(b.size()==3){ vector T; for(auto x:b) T.push_back(x); ANS.insert(T[0]); ANS.insert(T[2]); } } cout<