#include <bits/stdc++.h>
using namespace std;
long long G(long long a, long long b) {
  if (b == 0) return a;
  return G(b, a % b);
}
bool mark[1111];
vector<pair<pair<int, int>, int> > v[1111];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    v[b / 1000].push_back(make_pair(make_pair(a, b), i));
  }
  for (int i = 0; i < 1111; i++) sort(v[i].begin(), v[i].end());
  for (int i = 0; i < 1111; i += 2) reverse(v[i].begin(), v[i].end());
  for (int i = 0; i < 1111; i++) {
    for (int j = 0; j < v[i].size(); j++) {
      printf("%d ", v[i][j].second + 1);
    }
  }
}
