N = int(input())

NSP = []
for n in range(1, N+1):
    s, p = input().split()
    NSP.append([n, s, int(p)])

# sortはstable。レコードの中に同じキーがある場合、もともとの順序が維持される
sorted_NSP = sorted(NSP, key=lambda x: x[2], reverse=True)
sorted_NSP = sorted(sorted_NSP, key=lambda x:x[1]) 
for nsp in sorted_NSP:
    print(nsp[0])
 N = int(input()) N int(input()) int input() input NSP = [] NSP [] for n in range(1, N+1):
    s, p = input().split()
    NSP.append([n, s, int(p)])

# sortはstable。レコードの中に同じキーがある場合、もともとの順序が維持される n range(1, N+1) range 1 N+1 N 1 s, p = input().split() s input().split() ().split () input split p NSP.append([n, s, int(p)]) NSP.append NSP append [n, s, int(p)] n s int(p) int p sorted_NSP = sorted(NSP, key=lambda x: x[2], reverse=True) sorted_NSP sorted(NSP, key=lambda x: x[2], reverse=True) sorted NSP key=lambda x: x[2] key lambda x: x[2] x[2] x 2 x reverse=True reverse True sorted_NSP = sorted(sorted_NSP, key=lambda x:x[1]) sorted_NSP sorted(sorted_NSP, key=lambda x:x[1]) sorted sorted_NSP key=lambda x:x[1] key lambda x:x[1] x[1] x 1 x for nsp in sorted_NSP:
    print(nsp[0]) nsp sorted_NSP print(nsp[0]) print nsp[0] nsp 0 s, p = input().split() input().split() s sorted_NSP = sorted(NSP, key=lambda x: x[2], reverse=True) sorted(NSP, key=lambda x: x[2], reverse=True) sorted_NSP NSP = [] [] NSP N = int(input()) int(input()) N p = input().split() input().split() p sorted_NSP = sorted(sorted_NSP, key=lambda x:x[1]) sorted(sorted_NSP, key=lambda x:x[1]) sorted_NSP
N = int(input())

NSP = []
for n in range(1, N+1):
    s, p = input().split()
    NSP.append([n, s, int(p)])

# sortはstable。レコードの中に同じキーがある場合、もともとの順序が維持される
sorted_NSP = sorted(NSP, key=lambda x: x[2], reverse=True)
sorted_NSP = sorted(sorted_NSP, key=lambda x:x[1]) 
for nsp in sorted_NSP:
    print(nsp[0])

