import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.Arrays;
public class Main {
static int n;
static int[] t=new int[1000010];
static int len;
public static void main(String[] args) throws Exception {
Read sc=new Read();
n=sc.nextInt();
len=sc.nextInt();
for(int i=0;i<n;i++){
t[i]=sc.nextInt();
}
Arrays.sort(t,0,n);
int l=t[0];
int r=t[n-1];
while(l<r){
int mid=l+r+1>>1;
if(check(mid)==true) l=mid;
else r=mid-1;
}
System.out.print(l);
}
static boolean check(int h){
int sum=0;
for(int i=0;i<n;i++){
if(t[i]>h) sum+=(t[i]-h);
}
if(sum>=len) return true;
else return false;
}
}
class Read {
StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
public int nextInt() throws Exception {
st.nextToken();
return (int) st.nval;
}
}