#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct node{
char name[12], v[3];
long long val;
}h[100005], s[100005];
int cmp(const void* a, const void* b)
{
struct node aa = *(struct node*)a;
struct node bb = *(struct node*)b;
return aa.val > bb.val ? -1:1;
}
int main()
{
int n, m,k;
int cnta = 0, cntb = 0;
char name[12]={0}, v[2] = {0};
long long var;
scanf("%d %d", &n, &m);
k = n + m;
for (int i = 1; i <= k; i++)
{
scanf("%s %s %lld", name, 12, v, 2, &var);
if (strcmp(v, "H") == 0) {
++cnta;
strcpy(h[cnta].name, name);
h[cnta].val = var;
}
else {
++cntb;
strcpy(s[cntb].name, name);
s[cntb].val = var;
}
}
qsort(h, cnta+1, sizeof(h[0]), cmp);
qsort(s, cntb+1, sizeof(s[0]), cmp);
printf("%s", h[cnta+1-2].name);
printf("\n");
for (int i = cntb-4; i <= cntb; ++i) {
printf("%s", s[i].name);
printf("\n");
}
return 0;
}