{
TASK:AKCIJOS
LANG:PASCAL
}
{ 15 olimpiada, III etapo I dalis, Januesniøjø grupë }

  program akcijos;
  const PRAD = 'akcijos.dat';
        REZ  = 'akcijos.rez';

  procedure pirkti (kaina: integer; var A, P: longint);
  { uþ turimus pinigus perkamos akcijos }
  begin
    A := P div kaina;  P := P mod kaina;
  end; { pirkti }

  procedure parduoti (kaina: longint; var A, P: longint);
  { parduodamos akcijos }
  begin
    P := P + A*kaina;
    A := 0;
  end; { parduoti }

  procedure prekiauti (var f: text; var P: longint; N: longint);
    var A, kaina1, kaina2, kaina3, d : longint;
  begin
    readln (F, kaina1, kaina2);
    A := 0; { nupirktø akcijø skaièius }
    if kaina1 < kaina2
       then pirkti (kaina1, A, P);
    for d := 3 to N do
      begin
        readln (f, kaina3);
        if (kaina1 < kaina2) and (kaina2 > kaina3)
           then parduoti (kaina2, A, P)
         else if (kaina1 > kaina2) and (kaina2 < kaina3)
           then pirkti (kaina2, A, P);
        if kaina2 <> kaina3
           then kaina1 := kaina2;
        kaina2 := kaina3;
      end;
     if A > 0 { paskutinioji periodo diena }
        then parduoti (kaina2, A, P)
  end; { prekiauti }

  procedure atidaryti (var f: text; var P, N: longint);
  begin
    assign (f, PRAD);
    reset (f);
    readln (f, P, N);
  end; { atidaryti }

  procedure uzdaryti (var f: text);
  begin
    close (f);
  end; { uþdaryti }

  procedure spausdinti (P: longint);
    var t: text;
  begin
    assign (t, REZ);
    rewrite (t);
    writeln (t, P);
    close (t);
  end; { spausdinti }

  var P, N: longint;
      f: text;
begin
  atidaryti (f, P, N);
  if N > 1 then
    prekiauti (f, P, N);
  uzdaryti (f);
  spausdinti (P);
end.
