#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
int main(void){
cin.tie(NULL);
ios::sync_with_stdio(false);
int N;
cin>>N;
int arr[N+1] = {0};
int dp[N+1] = {0};
for(int i=1;i<=N;i++)
cin>>arr[i];
dp[1] = 1;
int mmax = 1;
for(int i=2;i<=N;i++){
int cnt = 0;
for(int j=1;j<i;j++){
if(arr[i] > arr[j]){
if(cnt < dp[j])
cnt = dp[j];
}
dp[i] = cnt+1;
if(mmax < dp[i])
mmax = dp[i];
}
} // 14002와 11053 풀때 썼던 dp
int arr_sum[N+1]={0}; //합을 저장하는 배열
for(int i=1;i<=N;i++){
int max_sum=0;
for(int j=0;j<i;j++){
if(dp[j] == dp[i]-1 && arr[j] < arr[i]){
int temp = arr_sum[j];
max_sum = max(max_sum,temp);
} // dp가 1작고 arr[i]보다 작은 수의 arr_sum[j]중에 큰값을 max_sum에 저장
}
arr_sum[i] = arr[i] + max_sum; // arr_sum[i] 구하기
}
int result=0;
for(int i=1;i<=N;i++)
result = max(result,arr_sum[i]); // 한번 쭉 돌면서 제일 큰 값출력
cout<<result<<endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3RkaW8uaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IG1haW4odm9pZCl7CgljaW4udGllKE5VTEwpOwoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJaW50IE47CgljaW4+Pk47CglpbnQgYXJyW04rMV0gPSB7MH07CglpbnQgZHBbTisxXSA9IHswfTsKCWZvcihpbnQgaT0xO2k8PU47aSsrKQoJCWNpbj4+YXJyW2ldOwoJZHBbMV0gPSAxOwoJaW50IG1tYXggPSAxOwoJZm9yKGludCBpPTI7aTw9TjtpKyspewoJCWludCBjbnQgPSAwOwoJCWZvcihpbnQgaj0xO2o8aTtqKyspewoJCQlpZihhcnJbaV0gPiBhcnJbal0pewoJCQkJaWYoY250IDwgZHBbal0pCgkJCQkJY250ID0gZHBbal07CgkJCX0KCQkJZHBbaV0gPSBjbnQrMTsKCQkJaWYobW1heCA8IGRwW2ldKQoJCQkJbW1heCA9IGRwW2ldOwoJCX0KCX0gLy8gMTQwMDLsmYAgMTEwNTMg7ZKA65WMIOyNvOuNmCBkcAoJaW50IGFycl9zdW1bTisxXT17MH07IC8v7ZWp7J2EIOyggOyepe2VmOuKlCDrsLDsl7QKCWZvcihpbnQgaT0xO2k8PU47aSsrKXsKCQlpbnQgbWF4X3N1bT0wOwoJCWZvcihpbnQgaj0wO2o8aTtqKyspewoJCQlpZihkcFtqXSA9PSBkcFtpXS0xICYmIGFycltqXSA8IGFycltpXSl7CgkJCQlpbnQgdGVtcCA9IGFycl9zdW1bal07CgkJCQltYXhfc3VtID0gbWF4KG1heF9zdW0sdGVtcCk7CgkJCX0gLy8gZHDqsIAgMeyekeqzoCBhcnJbaV3rs7Tri6Qg7J6R7J2AIOyImOydmCBhcnJfc3VtW2pd7KSR7JeQIO2BsOqwkuydhCBtYXhfc3Vt7JeQIOyggOyepQoJCX0KCQlhcnJfc3VtW2ldID0gYXJyW2ldICsgbWF4X3N1bTsgLy8gYXJyX3N1bVtpXSDqtaztlZjquLAKCX0KCWludCByZXN1bHQ9MDsKCWZvcihpbnQgaT0xO2k8PU47aSsrKQoJCXJlc3VsdCA9IG1heChyZXN1bHQsYXJyX3N1bVtpXSk7IC8vIO2VnOuyiCDsrYkg64+M66m07IScIOygnOydvCDtgbAg6rCS7Lac66ClCgljb3V0PDxyZXN1bHQ8PGVuZGw7Cn0=