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).
# coding=utf-8
import sys

#sys.stdin = #open('in.txt')
R = lambda: list(map(int, input().split()))


def f(l, r):
    ans = sum(a[l:r + 1])

    a1 = sorted(a[l:r + 1])
    a2 = sorted(a[:l] + a[r + 1:], reverse=True)

    for i in range(min(k, len(a1), len(a2))):
        if a2[i] > min(a1):
            ans += a2[i] - min(a1)
            a1[a1.index(min(a1))] = a2[i]

    return ans


n, k = R()

a = R()

print(max(f(l,r) for l in range(n) for r in range(l,n)))