fun main() { val (n, k) = readInts() val p = listOf(-1) + List(n - 1) { readInt() } val parts = mutableListOf() val d = IntArray(n) { 0 } for (i in n - 1 downTo 0) { if (i == 0) { parts.add(d[i] + 1) } else { d[i] += 1 if (d[p[i]] != 0) { parts.add(minOf(d[i], d[p[i]])) } d[p[i]] = maxOf(d[i], d[p[i]]) } } parts.sort() println(parts.size - parts.runningReduce(Int::plus).takeWhile { it <= k }.count()) } private fun readInt() = readln().toInt() private fun readLongs() = readStrings().map { it.toLong() } private fun readStrings() = readln().split(" ") private fun readInts() = readStrings().map { it.toInt() }