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
import sys

[n,k]=[int(i) for i in sys.stdin.readline().split()]

a=[int(j) for j in sys.stdin.readline().split()]

arr=[]

a.sort()

prev=-2
for i in range(n):
	if(prev!=a[i]):
		arr.append([a[i],1])
	else:
		arr[-1][1]+=1
	prev=a[i]

done=0
for j in range(len(arr)):
	if(arr[j][1]>=k):
		done=1
		break

if(done==1):
	print(0)
else:

	count_arr=[]

	for w in range(200001):
		count_arr.append([0,0])

	# 0 is steps
	# 1 is count

	ans=sys.maxsize

	for h in range(n):
		count_arr[a[h]][1]+=1

	for g in range(n):
		tmp=a[g]

		tmp//=2
		step=1

		while(tmp!=0):	
			count_arr[tmp][0]+=step
			count_arr[tmp][1]+=1

			if(count_arr[tmp][1]>=k):
				ans=min(ans,count_arr[tmp][0])

			step+=1
			tmp//=2

		count_arr[0][0]+=step
		count_arr[0][1]+=1

		if(count_arr[0][1]>=k):
			ans=min(ans,count_arr[0][0])

	print(ans)