#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<cstring>
#include<queue>
#include<tuple>
#include<utility>
#include<map>
#include<math.h>
#include<iomanip>
#include<stdio.h>
#include<stdlib.h>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
#define FOR(i, a, b) for (int i=a; i<(b); i++)
#define range(a) a.begin(), a.end()
#define endl "\n"
#define Yes() cout << "Yes" << endl
#define No() cout << "No" << endl
using Graph = vector<vector<int>>;
const unsigned long long mod = 1e9 + 7;
const long long INF = 1LL<<60;
const int dx[4]={1,0,-1,0};
const int dy[4]={0,1,0,-1};
void chmin(long long &a, long long b) { if (a > b) a = b; }
void chmax(long long &a, long long b) { if (a < b) a = b; }

int main(void){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int N,A;	cin>>N;
	ll dp[N+5][1000];
	memset(dp, 0, sizeof(dp));
	dp[0][0]=1000;	int M[N+5]={};
	FOR(i,0,N){
		cin>>A;
		FOR(j,0,M[i]+1){
			int money=dp[i][j];
			int k=0;
			while(money>=0){//買う
				chmax(dp[i+1][j+k],dp[i][j]-k*A);
				M[i+1]=max(M[i+1],j+k);
				money-=A;	k++;
				//cout<<money<<endl;
			}
			FOR(k,0,j+1){//売る
				chmax(dp[i+1][j-k],dp[i][j]+k*A);
			}
		}
	}
	/*
	FOR(i,0,N+1){
		cout<<i+1<<"/";
		FOR(j,0,M[i]+1){
			//cout<<i+1<<"/"<<j<<"："<<dp[i][j]<<endl;
			cout<<setw(5)<<dp[i][j];
		}
		cout<<endl;
	}
	*/
	cout<<dp[N][0]<<endl;

    return 0;
}

