1213_D1. Equalizing by Division (easy version)
The only difference between easy and hard versions is the number of elements in the array.

You are given an array a consisting of n integers. In one move you can choose any a_i and divide it by 2 rounding down (in other words, in one move you can set a_i := ⌊(a_i)/(2)⌋).

You can perform such an operation any (possibly, zero) number of times with any a_i.

Your task is to calculate the minimum possible number of operations required to obtain at least k equal numbers in the array.

Don't forget that it is possible to have a_i = 0 after some operations, thus the answer always exists.

Input

The first line of the input contains two integers n and k (1 ≤ k ≤ n ≤ 50) — the number of elements in the array and the number of equal numbers required.

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

Output

Print one integer — the minimum possible number of operations required to obtain at least k equal numbers in the array.

Examples

Input


5 3
1 2 2 4 5


Output


1


Input


5 3
1 2 3 4 5


Output


2


Input


5 3
1 2 3 3 3


Output


0
```python
import collections
import functools
import math
import sys
import bisect


def In():
    return map(int, sys.stdin.readline().split())


input = sys.stdin.readline

def eqdiv():
    n,k = In()
    cost = [0]*int(1e5*2+10)
    count = cost[:]
    l = list(In())
    l.sort()
    for i in l:
        i = int(i)
        pos = 0
        while i:
            if count[i] < k:
                count[i] += 1
                cost[i] += pos
            pos += 1
            i //= 2
    ans = float('inf')
    for i in range(len(cost)):
        if count[i] == k and cost[i] < ans:
            ans = min(ans,cost[i])
    return ans
print(eqdiv())


```