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).
n,k=map(int,input().split())

L=list(map(int,input().split()))
H=sorted(L,reverse=True)
best=H[0]
X=[0]*10000
for i in range(n):
    for j in range(i,n):
        t=0
        for x in range(i,j+1):
            X[L[x]]+=1
            t+=L[x]
        S=list(L[i:j+1])
        S.sort()
        q=0
        ind=0
        for x in range(n):
            if(X[H[x]]>0):
                X[H[x]]-=1
                continue
            if(q>=k):
                break
            if(ind==len(S) or S[ind]>=H[x]):
                break
            t-=S[ind]
            ind+=1
            t+=H[x]
        for x in range(i,j+1):
            X[x]=0
        best=max(best,t)
print(best)
