package main
import (
"bufio"
"fmt"
"os"
"sort"
"strconv"
"strings"
)
func main() {
in := bufio.NewScanner(os.Stdin)
in.Scan()
s := strings.Split(in.Text(), " ")
in.Scan()
H, _ := strconv.Atoi(in.Text())
a := make([]int, len(s))
for i, str := range s {
a[i], _ = strconv.Atoi(str)
}
N := len(a)
//枚举K的值
sort.Ints(a)
k := sort.Search(a[N-1]+1, func(k int) bool {
count := 0
for _, num := range a {
count += (num + k - 1) / k
}
return count <= H
})
if k == a[N-1]+1 {
fmt.Println(0)
return
}
fmt.Println(k)
}
func max(a, b int) int {
if a > b {
return a
}
return b
}