use proconio::input;
use std::cmp;

// 購入と売却は交互
// 次に購入するなら0、売却するなら1
//
// 購入するときは0株しか持っていない
// 購入するときは金額を最大化する
// 売却するときは株数を最大にする？

fn main() {
    input! {
        n: usize,
        a: [i64; n],
    }

    // (金額, 株数)
    let mut dp = vec![vec![(0i64, 0i64); n + 5]; 2];
    dp[0][0] = (1000, 0);
    for i in 1..=n {
        dp[0][i] = dp[0][i - 1];
        dp[1][i] = dp[1][i - 1];

        // 購入する
        let (money, kabu) = dp[0][i - 1];
        if kabu + money / a[i - 1] > dp[1][i].1 {
            dp[1][i] = (money % a[i - 1], kabu + money / a[i - 1]);
        }
        // 売却する
        let (money, kabu) = dp[1][i - 1];
        if money + kabu * a[i - 1] > dp[0][i].0 {
            dp[0][i] = (money + kabu * a[i - 1], 0);
        }
    }

    // dbg!(&dp);

    let ans = dp[0][n].0;
    println!("{}", ans);
}
