import java.io.*;
import java.util.*;

public class ss {
	public static BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
	public static StringTokenizer st;

	public static int readInt() throws Exception {
		while(!st.hasMoreTokens()) st = new StringTokenizer( in.readLine());
		return Integer.parseInt(st.nextToken());
	}
	                              

	public static void main(String [] args) throws Exception {
		while(true){
			st = new StringTokenizer( in.readLine());
			int D = readInt();
			if(D==0) break;

			int M = readInt();		

			long profit = 0;

			st = new StringTokenizer( in.readLine());

			int [] p = new int[D];
			int max  = 0;
			int midx = 0;
			for(int i=0; i<D; i++){
				p[i] = readInt();
				if(max <= p[i]){
					max = p[i];
					midx= i;
				}
			}

			for(int j=0; j<D; j++){
				if(p[j] > M) continue;
				if(midx == j)
					continue;
				if(midx <  j) {
					max = 0;
					for(int k=j+1; k<D; k++){
						if(max <= p[k]){
							max = p[k];
							midx= k;
						}
					}
				}
				//if( p[midx] <= p[j] ) continue;
				long tmp = (M/p[j]*p[midx]) - (M/p[j]*p[j]);
				profit = (profit>=tmp ? profit : tmp);
			}
			System.out.println( profit>0 ? profit : 0);
		}
	}
}
