Problem: 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

Solution (in PYTHON3):

Solution:
def fuck(num,i):
    fuck = 0
    while num >= i:
        if num == i:
            return fuck
        num //= 2
        fuck += 1
    return False


lenK = list(map(int,input().split()))
lens = lenK[0]
K = lenK[1]
nums = list(map(int,input().split()))

nums.sort()
lists = [[nums[0],1]]
up = nums[0]
for i in nums[1:]:
    if i == up:
        lists[-1][1] += 1
    else:
        up = i
        lists.append([i,1])
mis = -1
# print(lists)
for i in range(len(lists)):
    thisN = lists[i][0]
    thisP = 0
    tk = K - lists[i][1]
    if tk <= 0:
        mis = 0
        break
    ji = 0
    while True:
        for j in range(i + 1,len(lists)):
            dong =  fuck(lists[j][0],thisN)
            if dong != False:
                thisP += min(tk,lists[j][1])*dong
                tk -= min(tk,lists[j][1])
            # if dong != False:
            #     print(str(lists[j][0])+"除以"+str(dong)+"次="+str(thisN),lists[i][0],thisP)
            if tk == 0:

                # print(mis, thisP, thisN, i,j, lists[j])
                if mis == -1 or mis > thisP:
                    mis = thisP
                    # print("fuck")
                break
        if thisN == 0:
            break
        thisN //= 2
        ji += 1
        thisP = ji*lists[i][1]
        # print(thisP)
        tk = K - lists[i][1]

print(int(mis))