fun main() { val (n, c) = readInts() val data = readLongs() val left = data .runningReduce { acc, it -> maxOf(acc - c, 0L) + it } .map { maxOf(0L, it / c) } println(left.withIndex().filter { it.index + it.value < n }.minByOrNull { it.value }?.index ?: "impossible") } private fun readLn() = readLine()!! private fun readInt() = readLn().toInt() private fun readLongs() = readStrings().map { it.toLong() } private fun readStrings() = readLn().split(" ") private fun readInts() = readStrings().map { it.toInt() }