import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String[] tokens = in.nextLine().split(" ");
		int donutKinds = Integer.parseInt(tokens[0]);
		int sozaiWeight = Integer.parseInt(tokens[1]);
		int[] mList = new int[donutKinds];
		for (int i = 0; i < donutKinds; ++i) {
			mList[i] = Integer.parseInt(in.nextLine());
		}
		// 最低限の消費量
		int result = donutKinds;
		int remainWeight = sozaiWeight;
		for (int i = 0; i < donutKinds; ++i) {
			remainWeight -= mList[i];
		}
		// 最小の消費量の種類を探す
		int minSpentWeight = Integer.MAX_VALUE;
		for (int i = 0; i < donutKinds; ++i) {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		}
		result += (int) Math.floor((double) remainWeight / (double) minSpentWeight);
		System.out.println(result);
		in.close();
	}

} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String[] tokens = in.nextLine().split(" ");
		int donutKinds = Integer.parseInt(tokens[0]);
		int sozaiWeight = Integer.parseInt(tokens[1]);
		int[] mList = new int[donutKinds];
		for (int i = 0; i < donutKinds; ++i) {
			mList[i] = Integer.parseInt(in.nextLine());
		}
		// 最低限の消費量
		int result = donutKinds;
		int remainWeight = sozaiWeight;
		for (int i = 0; i < donutKinds; ++i) {
			remainWeight -= mList[i];
		}
		// 最小の消費量の種類を探す
		int minSpentWeight = Integer.MAX_VALUE;
		for (int i = 0; i < donutKinds; ++i) {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		}
		result += (int) Math.floor((double) remainWeight / (double) minSpentWeight);
		System.out.println(result);
		in.close();
	}

} Main public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String[] tokens = in.nextLine().split(" ");
		int donutKinds = Integer.parseInt(tokens[0]);
		int sozaiWeight = Integer.parseInt(tokens[1]);
		int[] mList = new int[donutKinds];
		for (int i = 0; i < donutKinds; ++i) {
			mList[i] = Integer.parseInt(in.nextLine());
		}
		// 最低限の消費量
		int result = donutKinds;
		int remainWeight = sozaiWeight;
		for (int i = 0; i < donutKinds; ++i) {
			remainWeight -= mList[i];
		}
		// 最小の消費量の種類を探す
		int minSpentWeight = Integer.MAX_VALUE;
		for (int i = 0; i < donutKinds; ++i) {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		}
		result += (int) Math.floor((double) remainWeight / (double) minSpentWeight);
		System.out.println(result);
		in.close();
	} main {
		Scanner in = new Scanner(System.in);
		String[] tokens = in.nextLine().split(" ");
		int donutKinds = Integer.parseInt(tokens[0]);
		int sozaiWeight = Integer.parseInt(tokens[1]);
		int[] mList = new int[donutKinds];
		for (int i = 0; i < donutKinds; ++i) {
			mList[i] = Integer.parseInt(in.nextLine());
		}
		// 最低限の消費量
		int result = donutKinds;
		int remainWeight = sozaiWeight;
		for (int i = 0; i < donutKinds; ++i) {
			remainWeight -= mList[i];
		}
		// 最小の消費量の種類を探す
		int minSpentWeight = Integer.MAX_VALUE;
		for (int i = 0; i < donutKinds; ++i) {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		}
		result += (int) Math.floor((double) remainWeight / (double) minSpentWeight);
		System.out.println(result);
		in.close();
	} Scanner in = new Scanner(System.in); in new Scanner(System.in) String[] tokens = in.nextLine().split(" "); tokens in.nextLine().split(" ") in.nextLine().split in.nextLine() in.nextLine in " " int donutKinds = Integer.parseInt(tokens[0]); donutKinds Integer.parseInt(tokens[0]) Integer.parseInt Integer tokens[0] tokens 0 int sozaiWeight = Integer.parseInt(tokens[1]); sozaiWeight Integer.parseInt(tokens[1]) Integer.parseInt Integer tokens[1] tokens 1 int[] mList = new int[donutKinds]; mList new int[donutKinds] donutKinds for (int i = 0; i < donutKinds; ++i) {
			mList[i] = Integer.parseInt(in.nextLine());
		} int i = 0; int i = 0; i 0 i < donutKinds i donutKinds ++i ++i i {
			mList[i] = Integer.parseInt(in.nextLine());
		} {
			mList[i] = Integer.parseInt(in.nextLine());
		} mList[i] = Integer.parseInt(in.nextLine()) mList[i] mList i Integer.parseInt(in.nextLine()) Integer.parseInt Integer in.nextLine() in.nextLine in int result = donutKinds; result donutKinds int remainWeight = sozaiWeight; remainWeight sozaiWeight for (int i = 0; i < donutKinds; ++i) {
			remainWeight -= mList[i];
		} int i = 0; int i = 0; i 0 i < donutKinds i donutKinds ++i ++i i {
			remainWeight -= mList[i];
		} {
			remainWeight -= mList[i];
		} remainWeight -= mList[i] remainWeight mList[i] mList i int minSpentWeight = Integer.MAX_VALUE; minSpentWeight Integer.MAX_VALUE Integer Integer.MAX_VALUE for (int i = 0; i < donutKinds; ++i) {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		} int i = 0; int i = 0; i 0 i < donutKinds i donutKinds ++i ++i i {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		} {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		} if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			} minSpentWeight > mList[i] minSpentWeight mList[i] mList i {
				minSpentWeight = mList[i];
			} minSpentWeight = mList[i] minSpentWeight mList[i] mList i result += (int) Math.floor((double) remainWeight / (double) minSpentWeight) result (int) Math.floor((double) remainWeight / (double) minSpentWeight) Math.floor Math (double) remainWeight / (double) minSpentWeight (double) remainWeight (double) minSpentWeight System.out.println(result) System.out.println System.out System System.out result in.close() in.close in String[] args args public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String[] tokens = in.nextLine().split(" ");
		int donutKinds = Integer.parseInt(tokens[0]);
		int sozaiWeight = Integer.parseInt(tokens[1]);
		int[] mList = new int[donutKinds];
		for (int i = 0; i < donutKinds; ++i) {
			mList[i] = Integer.parseInt(in.nextLine());
		}
		// 最低限の消費量
		int result = donutKinds;
		int remainWeight = sozaiWeight;
		for (int i = 0; i < donutKinds; ++i) {
			remainWeight -= mList[i];
		}
		// 最小の消費量の種類を探す
		int minSpentWeight = Integer.MAX_VALUE;
		for (int i = 0; i < donutKinds; ++i) {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		}
		result += (int) Math.floor((double) remainWeight / (double) minSpentWeight);
		System.out.println(result);
		in.close();
	}

} public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String[] tokens = in.nextLine().split(" ");
		int donutKinds = Integer.parseInt(tokens[0]);
		int sozaiWeight = Integer.parseInt(tokens[1]);
		int[] mList = new int[donutKinds];
		for (int i = 0; i < donutKinds; ++i) {
			mList[i] = Integer.parseInt(in.nextLine());
		}
		// 最低限の消費量
		int result = donutKinds;
		int remainWeight = sozaiWeight;
		for (int i = 0; i < donutKinds; ++i) {
			remainWeight -= mList[i];
		}
		// 最小の消費量の種類を探す
		int minSpentWeight = Integer.MAX_VALUE;
		for (int i = 0; i < donutKinds; ++i) {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		}
		result += (int) Math.floor((double) remainWeight / (double) minSpentWeight);
		System.out.println(result);
		in.close();
	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String[] tokens = in.nextLine().split(" ");
		int donutKinds = Integer.parseInt(tokens[0]);
		int sozaiWeight = Integer.parseInt(tokens[1]);
		int[] mList = new int[donutKinds];
		for (int i = 0; i < donutKinds; ++i) {
			mList[i] = Integer.parseInt(in.nextLine());
		}
		// 最低限の消費量
		int result = donutKinds;
		int remainWeight = sozaiWeight;
		for (int i = 0; i < donutKinds; ++i) {
			remainWeight -= mList[i];
		}
		// 最小の消費量の種類を探す
		int minSpentWeight = Integer.MAX_VALUE;
		for (int i = 0; i < donutKinds; ++i) {
			if (minSpentWeight > mList[i]) {
				minSpentWeight = mList[i];
			}
		}
		result += (int) Math.floor((double) remainWeight / (double) minSpentWeight);
		System.out.println(result);
		in.close();
	}

}