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

public class ss {

public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		ArrayList<Integer> ar = new ArrayList<Integer>();
		ArrayList<Integer> ap = new ArrayList<Integer>();
		
		int[][] pole;
		
		String radek = "";
		int maxProf = 0;
		
			while(!(radek = br.readLine()).equals("0")) {
				StringTokenizer st = new StringTokenizer(radek, " ");
				int days = Integer.parseInt(st.nextToken());
				int cash = Integer.parseInt(st.nextToken());
				if(days >= 1 && days <= 70000 && cash >= 1 && cash <= 40000) {
				pole = new int[days][days];
					int zbozi = 0;
					int zbytek = 0;
				
				radek = br.readLine();				
				StringTokenizer sts = new StringTokenizer(radek);
				for(int i = 0; i < days; i++) {
					ar.add(Integer.parseInt(sts.nextToken()));
				}
				
				for (int i = 0; i < days; i++) {
					
					zbozi = cash / ar.get(i);
					zbytek = cash % ar.get(i);
					
					for (int j = i; j < days; j++) {
						if ((j+1) < ar.size()) {
						pole[i][j] = (zbozi * ar.get(j + 1)) + zbytek;
						}
						
					}	
					
				}
				
				int max = 0;
				
				for(int i = 0; i < pole.length; i++) {
					for(int j = 0; j < pole[i].length; j++) {
						 if(pole[i][j] > max) {
						  	max = pole[i][j];
						 }
					}
				}
				
				System.out.println((max - cash));
				
				/*
				int zbytek = 0;
				int zbozi;
				int prodej = 0;
				
				
				
		System.out.println(ar);
		
				for(int j = 0; j < ar.size() - 1; j++) {
					if(cash >= ar.get(j)) {
						zbozi = cash / ar.get(j);
						System.out.println("koupime: " + zbozi);	
						for (int z = j; z < ar.size(); z++) {
							prodej = zbozi * ar.get(z);
							ap.add(prodej);
						}					
					}	
				}
				
		*/
		
		
		ar.clear();
			}
			}
		}
}
