#include <bits/stdc++.h>
using namespace std;
int INF = 1000000000;
const long long MOD = 1e9 + 7;
vector<pair<int, int> > points;
vector<vector<pair<pair<int, int>, int> > > nums;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n;
  scanf("%d", &n);
  points.resize(n);
  for (int i = 0; i < n; ++i) {
    int x, y;
    scanf("%d%d", &x, &y);
    points[i] = make_pair(x, y);
  }
  nums.resize(1001);
  for (int i = 0; i < n; ++i)
    nums[points[i].second / 1000].push_back(make_pair(points[i], i + 1));
  for (int i = 0; i <= 1000; ++i) sort(nums[i].begin(), nums[i].end());
  int cnt = 0;
  for (int i = 0; i <= 1000; ++i) {
    vector<pair<pair<int, int>, int> >& cur = nums[i];
    if (cur.size() != 0) ++cnt;
    if (cnt % 2) {
      for (int j = 0; j < cur.size(); ++j) printf("%d ", cur[j].second);
    } else {
      for (int j = cur.size() - 1; j >= 0; --j) printf("%d ", cur[j].second);
    }
  }
  return 0;
}
