As usual, Sereja has array *a*, its elements are integers: *a*[1], *a*[2], ..., *a*[*n*]. Let's introduce notation:

A swap operation is the following sequence of actions:
 -  choose two indexes *i*, *j* (*i* ≠ *j*); -  perform assignments *tmp* = *a*[*i*], *a*[*i*] = *a*[*j*], *a*[*j*] = *tmp*. 
What maximum value of function *m*(*a*) can Sereja get if he is allowed to perform at most *k* swap operations?
The first line contains two integers *n* and *k* (1 ≤ *n* ≤ 200; 1 ≤ *k* ≤ 10). The next line contains *n* integers *a*[1], *a*[2], ..., *a*[*n*] ( - 1000 ≤ *a*[*i*] ≤ 1000).
import heapq

n, k = list(map(int, input().split()))
a = list(map(int, input().split()))

optimal_a = sorted(a)

maxes = []
for x in range(0, len(a)):
    heapq.heappush(maxes, (-a[x], -x))

res = None
i = n-1
while i>=0 and k > 0:
    t = heapq.heappop(maxes)
    max_left = -t[1]
    if a[i] == optimal_a[i]:
        res = max(res, res+a[i]) if res else a[i]
        i -= 1
    else:
        a[i], a[max_left] = a[max_left], a[i]
        res = max(res, res+a[i]) if res else a[i]
        k -= 1
        i -= 1
print(res)
