#include <bits/stdc++.h>
using namespace std;
struct node {
  int x, y, id;
} t[1000100];
const int B = 1000;
bool cmp(node a, node b) {
  if (a.x / 1000 == b.x / 1000)
    return ((a.x / 1000) & 1) ? a.y < b.y : a.y > b.y;
  return a.x / 1000 < b.x / 1000;
}
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) scanf("%d %d", &t[i].x, &t[i].y), t[i].id = i;
  sort(t + 1, t + n + 1, cmp);
  for (int i = 1; i <= n; i++) {
    printf("%d ", t[i].id);
  }
  return 0;
}
