#include <iostream>
#include <algorithm>
using namespace std;

long N, K;
long* A;

long sum_depending_on_mid(int m) {
	long summ = 0;
	for (int i = 0; i <= N - 1 ; i++) {
		if(A[i] > m) summ += A[i] - m;
	}
	return summ;
}

int main() {
	cin >> N >> K;
	A = new long[N];
	for (int i = 0; i < N; i++) {
		cin >> A[i];
	}
	sort(A, A + N);
	long low = 0;
	long high = A[N - 1];
	long mid = 0;
	while (low != high and sum_depending_on_mid(mid = (low + high) / 2) != K) {
		long past_low = low;
		long past_high = high;
		if (sum_depending_on_mid(mid) < K) {
			high = mid;
		} else low = mid;
		if (past_low == low and past_high == high) {
			cout << mid;
			return 0;
		}
	}
	cout << mid;
	delete[] A;
}