import java.util.Scanner;
class List
{
String name[] = new String[100005];
int score[] = new int[100005];
int len;
void SetLen(int n)
{
len = n;
}
void sort(int l, int r)
{
if(l >= r)return ;
int p = score[l], i = l, j = r;
String pp = name[l];
while(i < j)
{
while(i < j && (score[j] < p || (score[j] == p && name[j].compareTo(pp) >= 0)))j--;
score[i] = score[j];
name[i] = name[j];
while(i < j && (score[i] >= p || (score[i] == p && name[i].compareTo(pp) < 0)))i++;
score[j] = score[i];
name[j] = name[i];
}
score[i] = p;
name[i] = pp;
sort(l, i - 1);
sort(i + 1, r);
}
void Print()
{
int i;
for(i = 0; i < len; i++)
{
if(i != 0)System.out.print(" ");
System.out.print(name[i]);
}
System.out.println();
}
}
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n, m, i, j, k, p = 0;
String s;
List li = new List();
n = cin.nextInt();
for(i = 0; i < n; i++)
{
m = cin.nextInt();
s = cin.nextLine();
for(j = 0; j < m; j++)
{
li.name[p] = cin.next();
li.score[p++] = cin.nextInt();
}
}
li.SetLen(p);
li.sort(0, p - 1);
li.Print();
cin.close();
}
}