import java.io.*;
import java.util.*;
public class P1873 {
static long height[] = new long[1000000+10];
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());//能得到木材至少为M米
long right = 0;
long left = 1;
st = new StringTokenizer(br.readLine());
for(int i = 1;i <= N;i++){
int tmp = Integer.parseInt(st.nextToken());
height[i] = tmp;
right = Math.max(right, tmp);
}
long mid = 0;
while(left <= right){
long sum = 0;
mid = (right + left) >> 1;
for(int i = 1;i <= N;i++){
if(height[i] > mid){
sum += height[i]- mid;
}
}
if( sum < M){
right = mid -1;
}else{
left = mid + 1;
}
}
System.out.println(right);
}
}