#include <bits/stdc++.h>
#define rep(i,n) for(int i = 0; i < n; i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> P;

int main()
{
	int N;
	cin >> N;
	vector<pair<int, string> > vec;
	rep(i,N)
	{
		string s;
		int t;
		cin >> s >> t;
		vec.push_back(make_pair(t,s));
	}
	sort(vec.begin(), vec.end());
	reverse(vec.begin(), vec.end());
	cout << vec[1].second << endl;
	return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i)
using ll = long long;
using P = pair<int,int>;

int main() {
	int n;
	cin >> n;
	vector<int> a(n);
	int maxA=0;
	rep (i,n) {
		cin >> a[i];
		maxA=max(maxA,a[i]);
	}
	// 与えられたai から最大の 積和を作る
	// 以下で(l,r) は全てなめている。
	ll maxAns = 0;
	rep(l,n) {
		int x = a[l]; // <- ここと
		for(int r=l;r<n;r++) {
			x = min(x,a[r]);// <- ここが不安なのはなぜか?
			// (l,r)区間内の最小のai を求める-> tle に成るここで工夫が必要
			// for (int i=l;i<=r;i++){
			// 	minA = min(minA,a[i]);
			// }
			ll ans = (r - l + 1)*x;
			maxAns = max(maxAns, ans);
		}
	}
	cout << maxAns << endl;
	return 0;
}
