#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], 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){ ll vx = v[i][1], vy = v[i][2]; if(!use[vx][vy]){ use[vx][vy] = true; ans.push_back(v[i][3]); rep(j, -10, 10){ rep(k, -10, 10){ if(j * j + k * k < 100){ if(1 <= vx + j && vx + j <= 500 && 1 <= vy + k && vy + k <= 500){ use[vx + j][vy + k] = true; //cout << j << " " << k << endl; } } } } } } print(ans.size()) zep(i, 0, ans.size())cout << ans[i] << " "; cout << endl; return 0; }