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 solve(a , l , r, k):
	out = sorted(a[:l]+a[r:], reverse=True)
	inside = sorted(a[l:r])
	cur = sum(a[l:r])
	for i in range(min(k , len(inside) , len(out))):
		if out[i]>inside[i]:
			cur+=out[i]-inside[i]
		else:
			break
	return cur
n , k = [int(x) for x in raw_input().split()]
a= [int(x) for x in raw_input().split()]
best = a[0]
for l in range(n):
	for r in range(l+1, n+1):
		cur = solve(a , l  , r, k)
		if(cur > best):
			best= cur

print(best)