import java.io.BufferedInputStream;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int N = 1000010;
static long[] H = new long[N];
static int n;
static long getNum(int mid){
long res = 0;
for(int i = 0;i < n;i ++){
if(H[i] - mid <= 0)
res += 0;
else
res += H[i] - mid;
}
return res;
}
public static void main(String[] args){
Scanner sc = new Scanner(new BufferedInputStream(System.in));
n = sc.nextInt();
int M = sc.nextInt();
for(int i = 0;i < n;i ++)
H[i] = sc.nextLong();
Arrays.sort(H,0,n);
long r = H[n - 1];
long l = 0;
while(l < r){
long mid = (l + r + 1) / 2;
if(getNum((int) mid) >= M) l = mid;
else r = mid - 1;
}
System.out.println(r);
}
}