eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Спадок Степана

Спадок Степана

Степан отримав у спадок від дідуся стоянку з n місць, пронумерованих від 1 до n. Стоянка розбита на дві частини. Перші m місць знаходяться з лівого боку, а інші n - m місць з правого. Кожного дня n жителів цього району паркують свої автомобілі на стоянці Степана. Відомо, що перший житель приходить раніше усіх, потім другий, і так далі, тобто k-ий приходить k-им. Також для кожного i-го мешканця відомо, скільки він буде платити, якщо його машину поставлять на j-е місце. Степан придбав розподільник місць, який кожному автомобілю, що приїздить вказує, на який бік паркуватись, після чого автомобіль паркується на мінімальне за номером вільне місце відповідного боку. При цьому Степан вирішив зекономити і не придбав програмне забезпечення для розподільника, тому він працює не оптимально.

Степан просить Вас написати програму для цього розподільника, яка максимізує доходи Степана.

Вхідні дані

У першому рядку записано два цілих числа n (2n1000) і m (1m < n) - загальна кількість місць на стоянці та кількість місць з лівого боку відповідно. У кожному із наступних n рядків записано по n цілих додатних чисел. j-е число i-го рядка означає, скільки буде платити i-ий житель за місце з номером j на цій стоянці. Кожне з цих чисел не перевищує 106.

Вихідні дані

Вивести одне число - максимальний прибуток стоянки.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
2 1
3 2
6 4
Вихідні дані #1
8
Вхідні дані #2
4 1
4 3 1 1
3 1 1 1
1 1 4 1
1 1 1 2
Вихідні дані #2
12
Джерело III етап Всеукраїнської олімпіади школярів 2012-2013, 1 тур