#include
<
iostream
>
#include < string >
#include < vector >
#include < algorithm >
using namespace std;
struct ZD
... {
string yc,ys;
} ;
vector < ZD > v;
bool cmp(ZD s, ZD t)
... {
return s.ys<t.ys;
}
string binSearch( string s)
... {
int low=0,high=v.size()-1,mid;
while(low<=high)
...{
mid=(low+high)/2;
if(v[mid].ys==s) return v[mid].yc;
if(v[mid].ys >s)
high=mid-1;
else
low=mid+1;
}
return "eh";
}
void init()
... {
ZD t;
string s;
while(true)
...{
getline(cin,s);
if (s=="") break;
int i=s.find(" ");
t.yc=s.substr(0,i);
t.ys=s.substr(i+1);
v.push_back(t);
}
sort(v.begin(),v.end(),cmp);
}
bool run()
... {
string ts;
if (!(cin>>ts)) return false;
cout << binSearch(ts)<<endl;
return true;
}
int main()
... {
init();
while(run());
return 0;
}
#include < string >
#include < vector >
#include < algorithm >
using namespace std;
struct ZD
... {
string yc,ys;
} ;
vector < ZD > v;
bool cmp(ZD s, ZD t)
... {
return s.ys<t.ys;
}
string binSearch( string s)
... {
int low=0,high=v.size()-1,mid;
while(low<=high)
...{
mid=(low+high)/2;
if(v[mid].ys==s) return v[mid].yc;
if(v[mid].ys >s)
high=mid-1;
else
low=mid+1;
}
return "eh";
}
void init()
... {
ZD t;
string s;
while(true)
...{
getline(cin,s);
if (s=="") break;
int i=s.find(" ");
t.yc=s.substr(0,i);
t.ys=s.substr(i+1);
v.push_back(t);
}
sort(v.begin(),v.end(),cmp);
}
bool run()
... {
string ts;
if (!(cin>>ts)) return false;
cout << binSearch(ts)<<endl;
return true;
}
int main()
... {
init();
while(run());
return 0;
}