#include<iostream>
#include<string>
using namespace std;
int main()
{
int a[1010];
int dp[1010];
int n, max;
int i1, i2, i3;
while( cin >> n )
{
if( n == 0)
break;
for( i1 = 0; i1 < n; i1 ++ )
{
cin >> a[i1];
dp[i1] = a[i1]; //先将每个数的递增子序列设为其本身
}
for( i2 = 0; i2 < n; i2 ++ )
{
max = 0;
for( i3 = 0 ; i3 < i2 ; i3++)
if( a[i2] > a[i3] && max < dp[i3]) //如果a[i2]前面没有比它小的数,dp[i2] = a[i2], 如果前面有比它小的数,
{ //那么dp[i2]是在前面比它小的数中, 选出递增子序列最大的数i3 dp[i2]+= dp[i3];
max = dp[i3];
dp[i2]= dp[i3] + a[i2];
}
}
for( i1 = 0, max = 0; i1 < n; i1++)
if( max < dp[i1] )
max = dp[i1];
cout << max << endl;
memset( dp, 0, sizeof(dp));
memset( a, 0, sizeof(a) );
}
return 0;
}