#include <bits/stdc++.h>
using namespace std;
int len;
struct node {
  int x, y, id;
  bool operator<(const node& a) const {
    if (x / len == a.x / len) {
      if ((x / len) % 2) return y < a.y;
      return y > a.y;
    }
    return x / len < a.x / len;
  }
} a[1000006];
int main() {
  int n;
  scanf("%d", &n);
  len = sqrt(n);
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &a[i].x, &a[i].y);
    a[i].id = i;
  }
  sort(a + 1, a + 1 + n);
  for (int i = 1; i <= n; i++) printf("%d%c", a[i].id, i == n ? '\n' : ' ');
  return 0;
}
