"use strict"
const create = () => {
    const input = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
    const res = {
        "list": input, "index": 0, "max": input.length,
        "hasNext": function() {return this.index < this.max},
        "next": function() { if (!this.hasNext()) {throw "ArrayIndexOutOfBoundsException";}else{return this.list[this.index++];}}
    };
    return res;
}
const o = create();
const next = () => o.next()
const nextInt = () => parseInt(o.next())
const nextStrArray = () => o.next().split(" ")
const nextIntArray = () => o.next().split(" ").map(el => parseInt(el))
const nextCharArray = () => o.next().split("")
const hasNext = () => o.hasNext()
const myout = (...x) => console.log(...x)
const Main = () => {
    const N = nextInt()
    let s = []
    let p = []
    let i = 0
    let r = {}
    while(hasNext()){
        i++
        let [s, p] = next().split(" ")
        if(!r[s]) r[s] = [[Number(p),i]]
        else r[s].push([Number(p), i])
    }
    let keys = Object.keys(r)
    keys.sort()
    for(let key of keys){
        let arr = r[key].sort((a,b) => b[0]-a[0])
        for(let el of arr) console.log(el[1])
    }
}
Main()
