program ss;

var zisk,pom,d,m,i,j,ik,il:longint;
    A:array [1..70000] of longint;
    x,y:real;

begin
read(d);
while d<>0 do
begin
    
    readln(m);

    for i:=1 to d do
	begin
	read(A[i]);
	end;    
    zisk:=0;
    ik:=1;
    il:=1;
    x:=0;
    
    for i:=1 to (d-1) do
	begin
	
	for j:=i+1 to d do
	    begin
	    
	    if ((A[i]<A[j]) and(A[i]<=m)) then
		begin
		y:=(A[j]/A[i]);
		if x<y then 
		    begin
		
		    ik:=i;
		
		    il:=j;
		    x:=y;
		    end;
		end;
	    end;
	
	end;
	
	pom:=m div A[ik];
	zisk:=( pom *(A[il]) ) - ( pom*A[ik]);
	writeln(zisk);
    
        
    read(d);
end;


end.