#include<iostream>
#include<stdio.h>
#include<cstring>
using namespace std;
struct in
{
char a[11];
char b[11];
}s[55];
struct name
{
char na[11];
double ro;
};
name num[55],temp[55];
double find(char *p,int n)
{
//printf("-->%s ",p);
for(int i=0;i<=n;i++)
if(strcmp(num[i].na,p)==0)
{
//printf("%s %lf\n",num[i].na,num[i].ro);
return num[i].ro;
}
return 0;
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=0;i<=n;i++)
num[i].ro=0;
scanf("%s",&num[0].na);
num[0].ro=1<<30;//赋值为1后面小数会很小,超出范围
for(int i=1;i<=n;i++)
scanf("%s%s%s",&num[i].na,&s[i].a,&s[i].b);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
//printf("s[j].a=%s s[j].b=%s\n",s[j].a,s[j].b);
num[j].ro=(find(s[j].a,n)+find(s[j].b,n))/2;
//printf("num[%d]=%.6lf\n",j,num[j].ro);
}
}
double max=0;
int ans;
for(int i=0;i<m;i++)
{
scanf("%s",&temp[i].na);
double flag=find(temp[i].na,n);
//printf("flag=%lf\n",flag);
if(max<flag)
{
max=flag;
ans=i;
}
}
printf("%s\n",temp[ans].na);
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CiNpbmNsdWRlPGNzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBpbgp7CiAgICBjaGFyIGFbMTFdOwogICAgY2hhciBiWzExXTsKfXNbNTVdOwpzdHJ1Y3QgbmFtZQp7CiAgICBjaGFyIG5hWzExXTsKICAgIGRvdWJsZSBybzsKfTsKbmFtZSBudW1bNTVdLHRlbXBbNTVdOwpkb3VibGUgZmluZChjaGFyICpwLGludCBuKQp7CiAgICAvL3ByaW50ZigiLS0+JXMgICIscCk7CiAgICBmb3IoaW50IGk9MDtpPD1uO2krKykKICAgICAgICBpZihzdHJjbXAobnVtW2ldLm5hLHApPT0wKQogICAgICAgIHsKICAgICAgICAgICAgLy9wcmludGYoIiVzICVsZlxuIixudW1baV0ubmEsbnVtW2ldLnJvKTsKICAgICAgICAgICAgcmV0dXJuIG51bVtpXS5ybzsKICAgICAgICB9CiAgICByZXR1cm4gMDsKfQppbnQgbWFpbigpCnsKICAgIGludCBuLG07CiAgICB3aGlsZShzY2FuZigiJWQlZCIsJm4sJm0pIT1FT0YpCiAgICB7CiAgICAgICAgZm9yKGludCBpPTA7aTw9bjtpKyspCiAgICAgICAgICAgIG51bVtpXS5ybz0wOwogICAgICAgIHNjYW5mKCIlcyIsJm51bVswXS5uYSk7CiAgICAgICAgbnVtWzBdLnJvPTE8PDMwOy8v6LWL5YC85Li6MeWQjumdouWwj+aVsOS8muW+iOWwj++8jOi2heWHuuiMg+WbtAogICAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICAgICAgICAgICBzY2FuZigiJXMlcyVzIiwmbnVtW2ldLm5hLCZzW2ldLmEsJnNbaV0uYik7CiAgICAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGo9MTtqPD1uO2orKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLy9wcmludGYoInNbal0uYT0lcyBzW2pdLmI9JXNcbiIsc1tqXS5hLHNbal0uYik7CiAgICAgICAgICAgICAgICBudW1bal0ucm89KGZpbmQoc1tqXS5hLG4pK2ZpbmQoc1tqXS5iLG4pKS8yOwogICAgICAgICAgICAgICAgLy9wcmludGYoIm51bVslZF09JS42bGZcbiIsaixudW1bal0ucm8pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGRvdWJsZSBtYXg9MDsKICAgICAgICBpbnQgYW5zOwogICAgICAgIGZvcihpbnQgaT0wO2k8bTtpKyspCiAgICAgICAgewogICAgICAgICAgICBzY2FuZigiJXMiLCZ0ZW1wW2ldLm5hKTsKICAgICAgICAgICAgZG91YmxlIGZsYWc9ZmluZCh0ZW1wW2ldLm5hLG4pOwogICAgICAgICAgICAvL3ByaW50ZigiZmxhZz0lbGZcbiIsZmxhZyk7CiAgICAgICAgICAgIGlmKG1heDxmbGFnKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBtYXg9ZmxhZzsKICAgICAgICAgICAgICAgIGFucz1pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHByaW50ZigiJXNcbiIsdGVtcFthbnNdLm5hKTsKICAgIH0KICAgIHJldHVybiAwOwp9