#include using namespace std; #define REP(i,n) for (int i=0;i<(n);i++) #define REP2(i,m,n) for (int i=m;i<(n);i++) typedef long long ll; int N; vector A[500*500]; vector solve2() { vector ans; REP(i, N) { bool ok = true; for (auto a: ans) { if ((A[i][0] - A[a][0]) * (A[i][0] - A[a][0]) + (A[i][1] - A[a][1]) * (A[i][1] - A[a][1]) < 100) { ok = false; break; } } if (ok) { ans.push_back(A[i][2]); } } if ((int)ans.size() * 90 >= N) { return ans; } else { return vector(); } } void solve() { N; cin >> N; REP(i, N) { A[i] = vector(3); cin >> A[i][0] >> A[i][1]; A[i][2] = i; } vector ans; sort(A, A+N); ans = solve2(); if (!ans.empty()) { cout << ans.size() << endl; for (auto a: ans) cout << a + 1 << " "; cout << endl; return; } REP(i, N) A[i][0] *= -1; sort(A, A+N); ans = solve2(); if (!ans.empty()) { cout << ans.size() << endl; for (auto a: ans) cout << a + 1 << " "; cout << endl; return; } REP(i, N) A[i][0] *= -1; REP(i, N) swap(A[i][0], A[i][1]); sort(A, A+N); ans = solve2(); if (!ans.empty()) { cout << ans.size() << endl; for (auto a: ans) cout << a + 1 << " "; cout << endl; return; } REP(i, N) A[i][0] *= -1; sort(A, A+N); ans = solve2(); if (!ans.empty()) { cout << ans.size() << endl; for (auto a: ans) cout << a + 1 << " "; cout << endl; return; } } int main() { cin.tie(0); ios::sync_with_stdio(false); solve(); }