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 JAVA):

Solution:
import java.util.*;

public class dproblem
{
  public static void main(String args[])
  {
    Scanner in = new Scanner(System.in);
    int n = in.nextInt();
    
    int k = in.nextInt();
    
    int maxli = (int)Math.pow(2,19);
    int arr[] = new int[maxli];
    
    for(int i =0;i<n;i++)
    {
     	int a = in.nextInt();
     	arr[a]++;
    }
    
    long max =(long)Math.pow(10,18);
    

    for(int i =1;i<maxli;i++)
    {
      int j =2*i;
      int count=arr[i]; 
      int mul=1;
      long val =0;
      int lol=2;
      while(j<maxli&&count<k)
      {
        
      	for(int gay=0;gay<lol;gay++)
      	{
      	 
      	 if(count==k)
      	  break;
      	 
      	 if(arr[j+gay]+count<k)
      	 {
      	  val = val + mul*arr[j+gay];
      	  count = count+arr[j+gay];
         }
         else
         {
        	val = val+ (k-count)*mul;
         	count=k;
         }
        }
        lol=2*lol;
      	j=2*j;
      	mul++;  	
      }
      if(count>=k)
      {
       max = Math.min(max,val);
      }	
    }

     System.out.println(max);

  }	
}