const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
const questions = (await readline()).split(",").map(Number);
const m = Number(await readline());
let left = 0;
let right = questions.reduce((a, b) => a + b) - Math.max(...questions);
const check = (T) => {
let days = 1;
let i = 0;
let maxCost = 0;
let sum = 0;
let canWatch = true;
while (i < questions.length) {
if (sum + questions[i] > T) {
if (canWatch) {
sum -= maxCost;
canWatch = false;
sum += questions[i];
i++;
} else {
sum = 0;
maxCost = 0;
canWatch = true;
days++;
}
} else {
sum += questions[i];
maxCost = Math.max(maxCost, questions[i]);
i++;
}
}
return days <= m;
};
while (left < right) {
const mid = (left + right) >> 1;
if (check(mid)) {
right = mid - 1;
} else {
left = mid + 1;
}
}
console.log(left);
})();