#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;
}