fun main() { val (n, c) = readInts() val dp = Array(n + 1) { IntArray(n + 1) { Int.MAX_VALUE } } for (i in 1 .. n) { dp[i][i] = i } for (len in 2 .. n) { for (i in 1 .. n - len + 1) { val j = i + len - 1 for (k in i..j) { var r = k if (i != k) r = maxOf(r, dp[i][k-1] + k) if (j != k) r = maxOf(r, dp[k + 1][j] + c) dp[i][j] = minOf(dp[i][j], r) } } } println(dp[1][n]) } private fun readInt() = readln().toInt() private fun readLongs() = readStrings().map { it.toLong() } private fun readStrings() = readln().split(" ") private fun readInts() = readStrings().map { it.toInt() }