One day Vasya got hold of information on the Martian dollar course in bourles for the next n days. The buying prices and the selling prices for one dollar on day i are the same and are equal to ai. Vasya has b bourles. He can buy a certain number of dollars and then sell it no more than once in n days. According to Martian laws, one can buy only an integer number of dollars. Which maximal sum of money in bourles can Vasya get by the end of day n?

Input

The first line contains two integers n and b (1 ≤ n, b ≤ 2000) — the number of days and the initial number of money in bourles. The next line contains n integers ai (1 ≤ ai ≤ 2000) — the prices of Martian dollars.

Output

Print the single number — which maximal sum of money in bourles can Vasya get by the end of day n.

Examples

Input

2 4
3 7


Output

8


Input

4 10
4 3 2 1


Output

10


Input

4 10
4 2 3 1


Output

15
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.*;

public class A1 {

	static InputStreamReader inp = new InputStreamReader(System.in);
	static BufferedReader in = new BufferedReader(inp);
	static boolean test = false;
	static PrintWriter writer = new PrintWriter(System.out);

	static String testDataFile = "testdata.txt";
	BufferedReader reader = null;

	public A1() throws Throwable {
		if (test) {
			reader = new BufferedReader(new FileReader(new File(testDataFile)));
		}
	}

	private void solve() throws Throwable, IOException {
		
		int[] data = ints();
		int[] dollarPrices = ints();
		int bors = data[1];
		int dollares = 0;
		
		int maxWin = bors;
		
		for (int i = 0; i < dollarPrices.length; i++) {
			for (int j = i + 1; j < dollarPrices.length; j++) {
				dollares += bors / dollarPrices[i];
				int bors2 = bors - dollares * dollarPrices[i];
				bors2 += dollarPrices[j] * dollares;
				dollares = 0;
		
				maxWin = Math.max(bors2, maxWin);
				
			}
		}
		
		System.out.println(maxWin);
		
	}

	public String ln() throws IOException {
		if (test)
			return reader.readLine();
		else
			return in.readLine();
	}

	/**
	 * read a single integer should be a full line
	 */
	private int in() throws NumberFormatException, IOException {
		return Integer.valueOf(ln());
	}

	/**
	 * Read one line and split contents to an int array
	 */
	private int[] ints() throws Exception {
		String[] split = ln().split(" ");
		int[] list = new int[split.length];
		for (int i = 0; i < list.length; i++) {
			list[i] = Integer.parseInt(split[i]);
		}
		return list;
	}

	/**
	 * Entry point
	 */
	public static void main(String[] args) throws Throwable {
		new A1().solve();
	}
}