#include <iostream>
#include <limits.h>
using namespace std;
int dp[100] = {0};
int a[100] = {0};
int main()
{
int i = 0;
while ((cin >> a[i++]));
//dp[i]用来存储到i为止的升序序列的最大元素和
//i代表元素个数
dp[0] = a[0];
for (int j = 1; j < i; j++)
{
//求dp[j]的值
//int max = 0;
int max = INT_MIN;
for (int k = 0; k < j; k++)
{
if (a[k] < a[j])
{
if (dp[k]>max)
max = dp[k];
}
}
if (max == INT_MIN)
dp[j] = a[j];
else
dp[j] = max + a[j];
}
int mm = dp[0];
for (int m = 1; m < i; m++)
{
if (dp[m] > mm)
mm = dp[m];
}
cout << mm << endl;
system("pause");
return 0;
}