import java. util. Arrays ;
import java. util. Scanner ;
public class DemoTest3 {
public static void main ( String [ ] args) {
Scanner in = new Scanner ( System . in) ;
while ( in. hasNextLine ( ) ) {
int a = in. nextInt ( ) ;
in. nextLine ( ) ;
int b = in. nextInt ( ) ;
in. nextLine ( ) ;
int [ ] arr = new int [ a] ;
for ( int i = 0 ; i< a; i++ ) {
arr[ i] = in. nextInt ( ) ;
}
Arrays . sort ( arr) ;
System . out. println ( solve ( a, b, arr) ) ;
}
}
private static int solve ( int a, int b, int [ ] arr) {
int left = 1 , right = arr[ arr. length- 1 ] ;
while ( left< right) {
int mid = left+ ( right- left) / 2 ;
if ( ok ( arr, b, mid) ) {
right = mid;
} else {
left = mid+ 1 ;
}
}
return left;
}
private static boolean ok ( int [ ] arr, int b, int mid) {
int temp = b;
for ( int i = 0 ; i< arr. length; i++ ) {
if ( temp> arr[ i] ) {
temp = temp- arr[ i] + mid;
} else {
return false ;
}
}
return true ;
}
}