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 java.util.Scanner;
import java.util.Arrays;

public class Equation_By_Dividing {

	public static void main(String [] args){
		Scanner in = new Scanner(System.in);
		int n = in.nextInt();
		int k = in.nextInt();
		int [] a = new int [n];
		for (int u = 0; u < n; u++)
			a[u] = in.nextInt();
		in.close();
		
		int MAX = 0;
		for (int v = 0; v < n; v++)
			MAX = Math.max(MAX, a[v]);
		
		int actions = 100000;
		for (int i = 0; i <= MAX; i++){
			int [] cnt = new int [n];
			Arrays.fill(cnt, 100000);
			for (int j = 0; j < n; j++){
				int num = a[j];
				int div = 0;
				while(num >= i){
					if (num == i){
						cnt[j] = div;
						break;
					}
					num /= 2;
					div++;
				}
			}
			Arrays.sort(cnt);
			int ac = 0;
			for (int z = 0; z < k; z++)
				ac += cnt[z];
			actions = Math.min(actions, ac);
		}
		System.out.print(actions);
	}

}