#include int main() { using namespace std; int num; cin >> num; int* point = new int[num]; for (int i = 0; i < num; i++) cin >> point[i]; /* int** array = new int*[num]; for (int i = 0; i < num; i++) array[i] = new int[700000]; */ int array[2][700000]; for (int i = 0; i < num; i++) { for (int k = 0; k < 700000; k++) { if (i == 0) { if ((k+1) > point[i] || (k+1) == point[i]) array[1][k] = point[i]; else array[1][k] = 0; } else { if (k+1 > point[i]) { int a = point[i] + array[0][k - point[i]]; int b = array[0][k]; if (a > b) array[1][k] = a; else array[1][k] = b; } else if (k+1 == point[i]) { int a = point[i]; int b = array[0][k]; if (a > b) array[1][k] = a; else array[1][k] = b; } else array[1][k] = array[0][k]; } } for (int i = 0; i < 700000; i++) array[0][i] = array[1][i]; } cout << array[1][699999] << endl; return 0; }