import java.util.PriorityQueue fun main() { val (n, k) = readInts() val q = PriorityQueue().apply { repeat(k) { add(0L) } } val events = buildList { for (v in readInts()) { val next = q.poll() add(next) q.add(next + v) } addAll(q) } println(events.sorted().zipWithNext().maxOf { it.second - it.first }) } private fun readInt() = readln().toInt() private fun readLongs() = readStrings().map { it.toLong() } private fun readStrings() = readln().split(" ") private fun readInts() = readStrings().map { it.toInt() }