#include using namespace std; typedef long long ll; typedef pair P; const ll MOD = 1e9+7; const ll INF = 1e18; #define rep(i,m,n) for(ll i = (m); i <= (n); i++) #define zep(i,m,n) for(ll i = (m); i < (n); i++) #define rrep(i,m,n) for(ll i = (m); i >= (n); i--) #define print(x) cout << (x) << endl; #define printa(x,m,n) for(int i = (m); i <= n; i++){cout << (x[i]) << " ";} cout<> n; ll x[n], y[n]; zep(i, 0, n)cin >> x[i] >> y[i]; vector> v(n); zep(i, 0, n)v[i] = {x[i], y[i], i + 1}; sort(v.begin(), v.end()); bool use[555][555]; memset(use, 0, sizeof(use)); vector ans; zep(i, 0, n){ if(!use[v[i][0]][v[i][1]]){ //cout << v[i][0] << " " << v[i][1] << " " << v[i][2] << endl; use[v[i][0]][v[i][1]] = true; ans.push_back(v[i][2]); rep(j, -10, 10){ rep(k, -10, 10){ if(j * j + k * k < 100){ if(1 <= v[i][0] + j && v[i][0] + j <= 500 && 1 <= v[i][1] + k && v[i][1] + k <= 500){ use[v[i][0] + j][v[i][1] + k] = true; //cout << j << " " << k << endl; } } } } } } print(ans.size()) zep(i, 0, ans.size())cout << ans[i] << " "; cout << endl; return 0; }