#include <bits/stdc++.h>
using namespace std;
struct node {
  int x, y;
  int no;
};
bool cmp(node p, node q) {
  if (p.x == q.x) {
    if (p.x % 2 == 0)
      return p.y < q.y;
    else
      return p.y > q.y;
  }
  return p.x < q.x;
}
node a[1000005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &a[i].x, &a[i].y);
    a[i].x /= 1000;
    a[i].no = i;
  }
  sort(a, a + n, cmp);
  for (int i = 0; i < n; i++) {
    if (i > 0) printf(" ");
    printf("%d", a[i].no + 1);
  }
}
