#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<string>
#include<set>
#include<map>
#include <vector>
#include<cstdio>
#include<unordered_map>
#include<cmath>
using namespace std;
#define ll long long
#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define mm(a, b) memset(a, b, sizeof(a))
#define mp make_pair
typedef pair<int, int> pii;
const int inf = 0x3f3f3f3f;
const int N = 1005;
const double eps = 1E-2;
const double Pi = acos(-1.0);
struct node {
string name;
int mark;
}q[N];
int main() {
int n;
cin >> n;
map<string, int>p;
int maxx = 0;
string names;
for (int i = 1; i <= n; i++) {
cin >> q[i].name >> q[i].mark;
p[q[i].name] += q[i].mark;
if (p[q[i].name] > maxx) {
maxx = p[q[i].name];
names = q[i].name;
}
}
cout << names;
return 0;
}