#include<stdio.h>
#include<string.h>
struct sum{
char name[100];
char place;
int profi;
};
struct survivor{
char name[100];
char place;
int profi;
};
struct hunter{
char name[100];
char place;
int profi;
};
int main()
{
long m,n;
char a[100];
char b;
int c;
int k=0;
int p=0;
int i,j;
scanf("%ld %ld",&n,&m);
struct survivor survivors[n+1];
struct hunter hunters[m+1];
struct sum sums[m+n];
for(i=1;i<=m+n;i++){
scanf("%s %c %d",&sums[i-1].name,&sums[i-1].place,&sums[i-1].profi);
if(sums[i-1].place=='S'){
strcpy(survivors[k].name,sums[i-1].name);
survivors[k].place=sums[i-1].place;
survivors[k].profi=sums[i-1].profi;
k++;
}
if(sums[i-1].place=='H'){
strcpy(hunters[p].name,sums[i-1].name);
hunters[p].place=sums[i-1].place;
hunters[p].profi=sums[i-1].profi;
p++;
}
}
int num;
for(i=0;i<n-1;i++){
int max=survivors[i].profi;
num=i;
survivors[n].profi=0;
for(j=i+1;j<n;j++){
if(survivors[j].profi>max){
num=j;
max=survivors[j].profi;
}
}
survivors[n]=survivors[i];
survivors[i]=survivors[num];
survivors[num]=survivors[n];
}
for(i=0;i<m-1;i++){
int max=hunters[i].profi;
num=i;
hunters[n].profi=0;
for(j=i+1;j<m;j++){
if(hunters[j].profi>max){
num=j;
max=hunters[j].profi;
}
}
hunters[m]=hunters[i];
hunters[i]=hunters[num];
hunters[num]=hunters[m];
}
printf("%s\n",hunters[2].name);
for(i=5;i<=8;i++){
printf("%s\n",survivors[i].name);
}
return 0;
}