int n;
int x[M], y[M];
vector<int>vx, vy;
void init() {
sort(vx.begin(), vx.end());
sort(vy.begin(), vy.end());
vx.erase(unique(vx.begin(), vx.end()), vx.end());
vy.erase(unique(vy.begin(), vy.end()), vy.end());
for (int i = 1; i <= n; i++) {
x[i] = lower_bound(vx.begin(), vx.end(), x[i]) - vx.begin();
y[i] = lower_bound(vy.begin(), vy.end(), y[i]) - vy.begin();
}
}
int main() {
ios::sync_with_stdio(false);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> x[i] >> y[i];
vx.push_back(x[i]);
vy.push_back(y[i]);
}
init();
return 0;
}