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).
def f(a,k):
    ans=-float("inf")
    for i in range(len(a)+1):
        for j in range(i):
            mid=a[j:i]
            l=a[:j]+a[i:]
            # print(mid,l)
            l=sorted(l,reverse=True)
            mid=sorted(mid)
            s=sum(mid)
            ans=max(ans,s)
            kk=k
            while kk:
                if l and mid and s-mid[0]+l[0]>s :
                    s= s-mid[0]+l[0]
                    l.pop(0)
                    mid.pop(0)
                    kk-=1
                    ans=max(ans,s)
                else:
                    break
    return ans


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