#include<stdio.h>
#include<string.h>
int main()
{
long long n,m;
scanf("%lld %lld",&n,&m);
char name[100001][11]={'0'};
char op[100001];
long long shu[100001];
for(long long i=0;i<n+m;i++)
{
scanf("%s %c %lld",&name[i],&op[i],&shu[i]);
}
int countH=0,countS=0;
while(countH<2)
{long long max1=0,imax1=0;
for(long long i=0;i<m+n-countH;i++)
{
if(op[i]=='H')
{
if(shu[i]>max1)
{
imax1=i;
max1=shu[i];
}
}
}
for(long long j=imax1;j<n+m-countH;j++)
{
strcpy(name[j],name[j+1]);
op[j]=op[j+1];
shu[j]=shu[j+1];
}
countH++;
}
while(countS<5)
{long long max2=0,imax2=0;
for(long long i=0;i<m+n-2-countS;i++)
{
if(op[i]=='S')
{
if(shu[i]>max2)
{
imax2=i;
max2=shu[i];
}
}
}
for(long long j=imax2;j<n+m-2-countS;j++)
{
strcpy(name[j],name[j+1]);
op[j]=op[j+1];
shu[j]=shu[j+1];
}
countS++;
}
int x=0;
for(long long i=0;i<5;i++)
{
if(op[i]=='H')
{
printf("%s",name[i]);
}
}
while(x<=3)
{long long max2=0,imax2=0;
for(long long i=0;i<5-x;i++)
{
if(op[i]=='S')
{
if(shu[i]>max2)
{
imax2=i;
max2=shu[i];
}
}
}
printf("\n");
printf("%s",name[imax2]);
for(long long j=imax2;j<5-x;j++)
{
strcpy(name[j],name[j+1]);
op[j]=op[j+1];
shu[j]=shu[j+1];
}
x++;
}
return 0;
}