#include <bits/stdc++.h>
using namespace std;
const int N = 2e6 + 9;
struct data {
  int X, Y, id, z;
  bool operator<(const data &k) const {
    if (z != k.z)
      return z < k.z;
    else if (z & 1)
      return Y > k.Y;
    else
      return Y < k.Y;
  }
} a[N];
int n;
void home() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
}
void enter() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    scanf("%d %d", &a[i].X, &a[i].Y);
    a[i].id = i;
    a[i].z = a[i].X / 1000;
  }
}
void solve() {
  sort(a + 1, a + n + 1);
  for (int i = 1; i <= n; ++i) printf("%d ", a[i].id);
}
int main() {
  home();
  enter();
  solve();
}
