#include <bits/stdc++.h>
using namespace std;
vector<pair<pair<int, int>, int> > v;
bool cmp(pair<pair<int, int>, int> a, pair<pair<int, int>, int> b) {
  if (a.first.first > b.first.first) return true;
  if (a.first.first == b.first.first) {
    if (a.first.first % 2 == 0)
      return a.first.second < b.first.second;
    else
      return a.first.second > b.first.second;
  }
  return false;
}
int main() {
  int n, x, y;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &x, &y);
    v.push_back(make_pair(make_pair(x / 1000, y), i + 1));
  }
  sort(v.begin(), v.end(), cmp);
  for (int i = 0; i < n; i++) printf("%d ", v[i].second);
  printf("\n");
  return 0;
}
