You are given the array a consisting of n elements and the integer k ≤ n.

You want to obtain at least k equal elements in the array a. In one move, you can make one of the following two operations:

  * Take one of the minimum elements of the array and increase its value by one (more formally, if the minimum value of a is mn then you choose such index i that a_i = mn and set a_i := a_i + 1); 
  * take one of the maximum elements of the array and decrease its value by one (more formally, if the maximum value of a is mx then you choose such index i that a_i = mx and set a_i := a_i - 1). 



Your task is to calculate the minimum number of moves required to obtain at least k equal elements in the array.

Input

The first line of the input contains two integers n and k (1 ≤ k ≤ n ≤ 2 ⋅ 10^5) — the number of elements in a and the required number of equal elements.

The second line of the input contains n integers a_1, a_2, ..., a_n (1 ≤ a_i ≤ 10^9), where a_i is the i-th element of a.

Output

Print one integer — the minimum number of moves required to obtain at least k equal elements in the array.

Examples

Input


6 5
1 2 2 4 2 3


Output


3


Input


7 5
3 3 2 1 1 1 3


Output


4
n, k = map(int, input().split())
a = list(map(int, input().split()))

d = {}
for e in a:
    try:
        d[e] += 1
    except:
        d[e] = 1

min_ = float("inf")
for x in range(200001):
    try:
        c2 = d[x]
    except:
        c2 = 0
    c1, f = 0, False
    for y in sorted(d.keys()):
        c3, c4 = 0, min([d[y], k-c2])
        while x < y:
            y //= 2
            c3 += 1
        if x == y and c3 != 0:
            c1 += c3*c4
            c2 += c4
        if c2 >= k:
            f = True
            break
    if f and c1 < min_:
        min_ = c1

print(min_)
