
{
TASK: DEZES
LANG: PASCAL
}
program dezes;
 { 14 olimpiada; 3 etapo II dalis }
 { JaunesniÖjÖ grupÓ }
 var N1, N2, M, K, X, Y, MAX: longint;
begin
  readln (N1, N2, M, K);
  if (K = M)
     then begin
            if N1 <> 1
               then MAX := M
            else if N2 <> 1
               then MAX := 2*M
            else MAX := 3*M
          end
  else if N1 = 1
     then begin
            Y := (K - M) div (N2 - 1);  X := M;
            MAX := M + N1*X + N2*Y
          end
  else if N2 = 1
     then begin
            X := (K - M) div (N1 - 1);  Y := X*N1;
            MAX := M + N1*X + N2*Y;
          end
  else begin
         MAX := 0; { maksimalus pervezamÖ dÓØiÖ skaiÑius }
         for X := 1 to M do
            if (K - M + X - X*N1) mod (N2 - 1) = 0 { jei y sveikasis }
               then begin
                      Y := (K - M + X - X*N1) div (N2 - 1);
                      if (Y >= 0) and (Y <= X*N1)
                         then if (M + X*N1 + Y*N2) > MAX
                                  then MAX := M + X*N1 + Y*N2
                    end;
      end;
  writeln (max);
  readln;
end.
