#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const long long MOD = 1e9 + 7;
void ALLIN1_NUMBER(vector<ll>& V) {
  for (auto& x : V) {
    cin >> x;
  }
}
void ALLOUT_NUMBER(vector<ll> V) {
  ll N = V.size();
  for (ll i = 0; i < N; i++) {
    cout << V[i];
    if (i < N - 1) cout << ' ';
  }
  cout << endl;
}
class Mll {
 public:
  ll x;
  Mll() : x(0) {}
  Mll(ll x = 0) : x((x % MOD + MOD) % MOD) {}
  Mll operator-() const { return Mll(-x); }
  Mll& operator+=(const Mll& A) {
    if ((x += A.x) >= MOD) x -= MOD;
    return *this;
  }
  Mll& operator-=(const Mll& A) {
    if ((x += MOD - A.x) >= MOD) x -= MOD;
    return *this;
  }
  Mll& operator*=(const Mll& A) {
    (x *= A.x) %= MOD;
    return *this;
  }
  Mll operator+(const Mll& A) {
    Mll res(*this);
    return res += A;
  }
  Mll operator-(const Mll& A) {
    Mll res(*this);
    return res -= A;
  }
  Mll operator*(const Mll& A) {
    Mll res(*this);
    return res *= A;
  }
  Mll pow(ll t) const {
    if (t == 0) return 1;
    Mll A = pow(t >> 1);
    A *= A;
    if (t & 1) A *= *this;
    return A;
  }
  Mll inv() const { return pow(MOD - 2); }
  Mll& operator/=(const Mll& A) { return (*this) *= A.inv(); }
  Mll operator/(const Mll& A) const {
    Mll res(*this);
    return res /= A;
  }
  friend ostream& operator<<(ostream& os, const Mll& M) {
    os << M.x;
    return os;
  }
};
vector<Mll> ALLIN_MLL(ll N) {
  vector<ll> numbers_ll(N);
  ALLIN1_NUMBER(numbers_ll);
  vector<Mll> numbers_Mll;
  for (ll i = 0; i < N; i++) {
    Mll add(numbers_ll[i]);
    numbers_Mll.push_back(add);
  }
  return numbers_Mll;
}
template <class T>
void OUT0(T N) {
  cout << N << endl;
}
static const double pi = acos(-1.0);
double Cos(double D) { return cos(pi / 180 * D); }
vector<ll> Mt_and_Va(vector<ll> A) {
  vector<ll> ret;
  ll N = A.size();
  bool b_or_s = true;
  for (ll i = 0; i < N; i++) {
    for (ll& j = i; j < N - 1; j++) {
      if (b_or_s) {
        if (A[j] < A[j + 1]) {
          ret.push_back(A[j]);
          b_or_s = false;
        }
      } else {
        if (A[j] > A[j + 1]) {
          ret.push_back(A[j]);
          b_or_s = true;
        }
      }
    }
    if (i == N - 1) {
      if (!b_or_s && A[N - 2] < A[N - 1]) {
        ret.push_back(A[i]);
      }
    }
  }
  return ret;
}
int main() {
  ll N;
  cin >> N;
  vector<ll> A(N);
  ALLIN1_NUMBER(A);
  vector<ll> B = Mt_and_Va(A);
  ALLOUT_NUMBER(B);
  ll S = B.size();
  ll money = 1000, kabu = 0;
  for (ll i = 0; i < S; i += 2) {
    kabu = (money / B[i]);
    money %= B[i];
    money += B[i + 1] * kabu;
    kabu = 0;
  }
  cout << money << endl;
  return 0;
}
