package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var n int
var k int64
fmt.Fscan(reader, &n, &k)
A := make([]int64, n)
var S int64 = 0
for i := 0; i < n; i++ {
fmt.Fscan(reader, &A[i])
S += A[i]
}
X := k + S
D := X / int64(n)
for {
var currentSum int64 = 0
for _, a := range A {
currentSum += ((a + D - 1) / D) * D
}
if currentSum <= X {
fmt.Println(D)
return
}
Q_next := X/D + 1
D = X / Q_next
}
}