#include <iostream>
#include <queue>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
// 持續讀取直到 EOF
while (cin >> n) {
unordered_map<int, queue<int>> dishQueues; // 菜色編號 -> 點該菜的客人序號隊列
vector<int> ci_list(n), di_list(n);
// 讀入每位客人的 (ci, di)
for (int i = 0; i < n; i++) {
cin >> ci_list[i] >> di_list[i];
}
// 將每位客人序號放入其點的菜色隊列中(客人序號 i 從 1 開始)
for (int i = 0; i < n; i++) {
dishQueues[di_list[i]].push(i + 1);
}
vector<int> result;
// 主廚出菜順序依序從 ci_list 取出,從對應的菜色隊列彈出一位客人
for (int i = 0; i < n; i++) {
int dish = ci_list[i];
// 從該菜色的隊列中取出最早點這道菜的客人
int cust = dishQueues[dish].front();
dishQueues[dish].pop();
result.push_back(cust);
}
// 輸出結果
for (int i = 0; i < n; i++) {
cout << result[i] << (i == n - 1 ? '\n' : ' ');
}
}
return 0;
}