#include <iostream>
#include<vector>
#include<stack>
using namespace std;

struct Station{
    int h,v;
};
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    cin>>n;
    vector<Station>s(n);
    if(n<2){
        cout<<0<<endl;
        return 0;
    }
    vector<long long>cnt(n,0);
    for(int i=0;i<n;i++){
        cin>>s[i].h>>s[i].v;
    }
    vector<int>left_h(n,-1);
    stack<int>st;
    for(int i=0;i<n;i++){
        while(!st.empty()&&s[st.top()].h<=s[i].h)st.pop();
        if(!st.empty())left_h[i]=st.top();
        st.push(i);
    }
    vector<int>right_h(n,n);
    st=stack<int>();
    for(int i=n-1;i>=0;i--){
        while(!st.empty()&&s[st.top()].h<=s[i].h)st.pop();
        if(!st.empty())right_h[i]=st.top();
        st.push(i);
    }
    for(int i=0;i<n;i++){
        int l=left_h[i];
        int r=right_h[i];
        if(l!=-1)cnt[l]+=s[i].v;
        if(r!=n)cnt[r]+=s[i].v;
    }
    long long maxv=0;
    for(long long v:cnt){
        if(v>maxv)maxv=v;
    }
    cout<<maxv<<endl;
    return 0;
}
// 64 位输出请用 printf("%lld")