Копір (copier)

КопірФіксікі настільки цікаві істоти, що неприємності Нулика під час його знайомства з копіром нічому їх не навчили. Тепер вже цілих N фіксіків забралися під кришку пристрою й опинилися у різних місцях скляної панелі ксерокса. Таємниця їх існування опинилася на межі розкриття, бо Лізонька, як завжди не вчасно, вирішила зробити копію якогось оголошення про загублені речі професора Генія Євгеновича. Щоб ніхто не зацікавився істотами на отриманій копії, потрібно одержати зображення, на якому рівно k фіксіків (точок) розташовано по діагоналі від низу до верху. Перелякані фіксікі зовсім розгубилися і недовго було початися паніці, якби Сімка не запропонувала такий вихід.

Представимо скануючу поверхню ксерокса координатною площиною з початком координат у лівому нижньому куту панелі. Тоді розташування фіксіків можна задати координатами точок (i, yi), i ∈ [1..N], 0 ≤ yi N ≤ 200000.

По команді fixup#i фіксік з номером i може переміститися на одну клітинку вверх, тобто з точки з координатами (i, yi) у точку з координатами (i, yi+1). Тепер потрібно за мінімальну кількість команд досягти того, щоб k фіксіків опинилися в точках з координатами (xi, 1), (xi+1, 2), ..., (xi+k−1, k) (див. рисунок) або переконатися, що це неможливо.

Формат введення-виведення:

Програма copier спочатку зчитує з клавіатури (стандартного пристрою уведення) два цілих числа N та k (1 ≤ k N ≤ 200000). Потім зчитується N цілих чисел y1, y2, …, yN – початкові положення фіксіків.

Програма copier виводить на екран (стандартний пристрій виведення) єдине число − мінімальну кількість команд, що потрібна для отримання необхідної конфігурації фіксіків, або «−1» (без лапок), якщо це зробити неможливо.

Приклад вхідних та вихідних даних

Введення

Виведення

6 3

1 0 0 1 0 1

4

3 3

1 3 2

-1

 

© LIKT 1998-2018