Sereja and Swaps

题意翻译

给一个长为 n 的序列,以及交换次数 k,每次可以在原先的序列 中任意交换两个数 交换后找一个最大子串和,输出其可能的最大值。 1 <= n <= 200; 1 <=k <=10

题目描述

As usual, Sereja has array $ a $ , its elements are integers: $ a[1],a[2],...,a[n] $ . Let's introduce notation: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF425A/32568eeb8040eb1aa136af55c788f7e656cb44a9.png)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) $ .

输出格式


In a single line print the maximum value of $ m(a) $ that Sereja can get if he is allowed to perform at most $ k $ swap operations.

输入输出样例

输入样例 #1

10 2
10 -1 2 2 2 2 2 2 -1 10

输出样例 #1

32

输入样例 #2

5 10
-1 -1 -1 -1 -1

输出样例 #2

-1