#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
char T[15000][1000];
double xz[15000];
int xu[15000];
char mb[16];
double y[16];
int compare( const void *arg1, const void *arg2 )
{
int *A=arg1, *B=arg2;
if(fabs(xz[*A]-xz[*B])<1e-30)
{
return strcmp(T[*A],T[*B]);
}
else
return (xz[*B]-xz[*A]>0);
}
int main()
{
int i,n,j,lenm,x;
scanf("%d\n",&n);
y[0]=1.0/256.0;
for(i=1;i<16;i++) y[i]=2.0*y[i-1];
for(i=0;i<n;i++)
{
gets(T[i]);
xu[i]=i;
}
gets(mb);
lenm=strlen(mb);
if((mb[0]=='i')&&(mb[1]=='s')&&(mb[2]=='t'))
{
for(i=0;i<n;i++)
{
j=0;
while(T[i][j]!=' ')j++;
T[i][j]=0; j++;
while(T[i][j])
{
if((T[i][j]>='0')&&(T[i][j]<='9')&&(T[i][j+1]>='0')&&(T[i][j+1]<='9'))
{
x=(T[i][j]-'0')*10+T[i][j+1]-'0';
xz[i]+=y[x-16];
j+=4;
}
else
j++;
}
}
}
else
{
for(i=0;i<n;i++)
{
j=0;
while(T[i][j]!=' ')j++;
T[i][j]=0; j++;
while(T[i][j])
{
if(!memcmp(&T[i][j],mb,lenm))
{
xz[i]++;
j+=lenm+1;
}
else
j++;
}
}
}
qsort(xu,n,sizeof(int),compare);
for(i=0;i<n;i++)
printf("%s(%d)\n",T[xu[i]],(int)xz[xu[i]]);
}