/*
TASK: SMS
LANG: C++
*/



#include <iostream>
#include <string.h>
using namespace std;

int n,l,z=0,x[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99};
char c[100][10][27],m[20],k[30];

void sort () {
	int i,j;
	for (i=0;i<z;i++) {
		for (j=1;j<z;j++) {
			if (strcmp(c[x[j]][0],c[x[j-1]][0])<0) {
				swap(x[j],x[j-1]);
			}
		}
	}
}

int main () {
	cin >> n;
	cin.getline(m,15,'\n');
	int i,j;
	for (i=0;i<n;i++) {
		cin.getline(m,15,'\n');
		cin >> l;
		cin.getline(k,25,'\n');
		cin.getline(k,25,'\n');
		for (j=0;j<z;j++) if (strcmp(c[j][0],m)==0) break;
		if (j==z) z++;
		strcpy(c[j][0],m);
		strcpy(c[j][l],k);
	}
	sort();
	bool p=0;
	for (i=0;i<z;i++) {
		if (p) cout << '\n';
		for (j=0;j<10;j++) {
			if(strcmp(c[x[i]][j],"\0")) {
				p=1;
				cout << c[x[i]][j];
				cout << '\n';
			}
		}
	}
	return 0;
}
