Input Format


N K
a_1 a_2 a_3 ... a_N


Output Format

Print the minimum cost in one line. In the end put a line break.


Constraints

* 1 ≤ K ≤ N ≤ 15
* 1 ≤ a_i ≤ 10^9



Scoring

Subtask 1 [120 points]


* N = K

Subtask 2 [90 points]


* N ≤ 5
* a_i ≤ 7

Subtask 3 [140 points]


* There are no additional constraints.

Output Format

Print the minimum cost in one line. In the end put a line break.


Constraints

* 1 ≤ K ≤ N ≤ 15
* 1 ≤ a_i ≤ 10^9



Scoring

Subtask 1 [120 points]


* N = K

Subtask 2 [90 points]


* N ≤ 5
* a_i ≤ 7

Subtask 3 [140 points]


* There are no additional constraints.

Input Format


N K
a_1 a_2 a_3 ... a_N

Example

Input

5 5
3949 3774 3598 3469 3424


Output

1541
# -*- coding: utf-8 -*-
# モジュールのインポート
import sys
import itertools

# 標準入力を取得
N, K = list(map(int, input().split()))
a = list(map(int, input().split()))

# 求解処理
ans = sys.maxsize
for buildings in itertools.combinations(range(N), K):
    cost = 0
    highest = a[0] - 1
    for n in range(N):
        a_n = a[n]
        built = 0
        if n in buildings:
            built = max(highest - a_n + 1, 0)
            cost += built
        highest = max(highest, a_n + built)
    ans = min(ans, cost)

# 結果出力
print(ans)
