'''
简单动态规划 O(N^2)时间复杂度
'''
N = int(input())
arr = list( map(int, input().split()) )
# dp[i]表示所有以i位置结尾的上升子序列中最大的和
dp = [val for val in arr]
ans = max(0, dp[0])
for i in range(1, N):
dp[i] = arr[i]
for j in range(i-1, -1, -1):
if arr[j] < arr[i]:
dp[i] = max(dp[i], dp[j] + arr[i])
ans = max(ans, dp[i])
print(ans)