using System;
using System.Collections.Generic;
using System.Linq;

public class Hello
{
    public static void Main()
    {
        hoge();
        System.Console.ReadLine();
    }

    public static void hoge()
    {
        var vars = System.Console.ReadLine().Split(' ').Select(long.Parse).ToArray();
        var n = vars[0];

        var a = System.Console.ReadLine().Split(' ').Select(long.Parse).ToArray();

        long kane = 1000;
        long kabu = 0;

        int updown = 0;
        var maxmin = a[0];
        long prevkane = 1000;
        for(int i = 1; i < a.Length; i++)
        {
            var current = 0;

            // 値下がり中なら最安値を保存
            if(updown == -1)
            {
                if(maxmin > a[i])
                {
                    maxmin = a[i];
                }
            }
            // 値上がり中なら最高値を保存
            if (updown == 1)
            {
                if (maxmin < a[i])
                {
                    maxmin = a[i];
                }
            }

            if (a[i-1] < a[i])
            {
                // 値上がり
                current = 1;
            }
            else if(a[i-1] > a[i])
            {
                // 値下がり
                current = -1;
            }
            // 下がり基調だったのが値上がりに転じた→今までの最安から買い
            if(current == 1 && updown == -1)
            {
                kabu = kane / maxmin;
                kane = kane % maxmin;
                prevkane = kane;
                maxmin = a[i];
                updown = 1;
            }
            // 上がり基調だったのが値下がりに転じた→今までの最高で売り
            else if (current == -1 && updown == 1)
            {
                kane += kabu * maxmin;
                kabu = 0;
                maxmin = a[i];
                updown = -1;
            }

            if(updown == 0)
            {
                // 最初である場合で値上がりの場合は株を買っておく
                if(i == 1 && current == 1)
                {
                    kabu = kane / maxmin;
                    kane = kane % maxmin;
                    prevkane = kane;
                    maxmin = a[i];
                }
                updown = current;
                if (updown == -1)
                {
                    if (maxmin > a[i])
                    {
                        maxmin = a[i];
                    }
                }
                if (updown == 1)
                {
                    if (maxmin < a[i])
                    {
                        maxmin = a[i];
                    }
                }
            }

        }

        // 上がり基調で終わったら清算
        if(updown == 1)
        {
            kane += kabu * maxmin;
        }

        Console.WriteLine(kane > prevkane ? kane : prevkane);
    }
}