#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int num[1001],dp[1001];
int main()
{
int n,Max,i,j;
while(scanf("%d",&n)!=EOF&&n!=0)
{
Max=0;
memset(dp,0,sizeof(dp));
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
dp[0]=num[0];
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
{
if(num[i]>num[j])
dp[i]=max(dp[i],dp[j]+num[i]);
}
dp[i]=max(dp[i],num[i]);
}
for(i=0;i<n;i++)
{
Max=max(Max,dp[i]);
}
printf("%d\n",Max);
}
return 0;
}
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int num[1001],dp[1001];
int main()
{
int n,Max,i,j;
while(scanf("%d",&n)!=EOF&&n!=0)
{
Max=0;
memset(dp,0,sizeof(dp));
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
dp[0]=num[0];
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
{
if(num[i]>num[j])
dp[i]=max(dp[i],dp[j]+num[i]);
}
dp[i]=max(dp[i],num[i]);
}
for(i=0;i<n;i++)
{
Max=max(Max,dp[i]);
}
printf("%d\n",Max);
}
return 0;
}