/*
#include <stdio.h>
struct student
{
int a;
int b;
int c;
};
int main()
{
struct student s[204];
int ctry[1000] = {0};
int n,i,j,max=-100,max1=-100,max2=-100,k=0,t=0,r=0;
scanf("%d",&n);
for (i=0; i<n; i++)
{
scanf("%d %d %d",&s[i].a,&s[i].b,&s[i].c);
}
for (i=0; i<n; i++)
{
if(s[i].c>max)
{
max=s[i].c;
t=i;
}
}
printf("%d %d\n",s[t].a,s[t].b);
s[t].c=0;
ctry[s[t].a]++;
for (i=0; i<n; i++)
{
if (s[i].c>max1)
{
max1=s[i].c;
r=i;
}
}
printf("%d %d\n",s[r].a,s[r].b);
s[r].c=0;
ctry[s[r].a]++;
for(i=0; i<n; i++)
{
if(ctry[i]>=2)
{
for(j=0; j<n; j++)
{
if(s[j].a==i)
{
s[j].c = 0;
}
}
}
}
for (i=0; i<n; i++)
{
if (max2<s[i].c)
{
max2=s[i].c;
k=i;
}
}
printf("%d %d\n",s[k].a,s[k].b);
}
*/
/*
struct olym {
int country;
int number;
int score;
};
int main() {
struct olym people[1000] = {0};
int i, n, j, k, p, x, y;
int countries[1000] = {0};
scanf("%d", &n);
for(i=0; i<n; i++) {
scanf("%d %d %d", &people[i].country, &people[i].number, &people[i].score);
}
for(i=0; i<3; i++) {
k=-1;
for(j=0; j<n; j++) {
if(k<people[j].score) {
k = people[j].score;
p = j;
x = people[j].country;
}
}
if(countries[x]<2) {
printf("%d %d\n", people[p].country, people[p].number);
people[p].score = 0;
countries[x]++;
}
else {
people[p].score = 0;
i--;
}
}
}
*/
#include <stdio.h>
struct student {
char a[101];
int b;
};
int main()
{
struct student s[1003];
int n,m,i,j,k=0,t=0,max=-100;
scanf("%d %d",&n,&m);
for (i=0; i<n; i++){
scanf("%s %d",s[i].a,&s[i].b);
}
for (i=0; i<n; i++){
for (j=0; j<n; j++){
if (s[i].b>max){
max=s[i].b;
k=i;
}
}
}
printf("%s\n",s[k].a);
}