#include using namespace std; void input(string f) { string one = f + ".in"; string two = f + ".out"; freopen(one.c_str(), "r", stdin); freopen(two.c_str(), "w", stdout); } const int N = 1e5 + 7; const int K = 1e2 + 7; const int inf = 1e9; int a[N], n; int dp[N][K]; int solve(int pos, int left){ if(pos > n){ return 0; } if(left < 0){ return -inf; } return dp[pos][left]; } int solve2(int pos, int left){ if(a[pos] == 0){ return solve(pos + 1, left - 1) + a[pos]; } return solve(pos + 1, left) + a[pos]; } int main(){ ios::sync_with_stdio(false); cin.tie(NULL); input("krasi"); int k; cin >> n >> k; for(int i = 1; i <= n; i++){ cin >> a[i]; } for(int pos = n; pos >= 1; pos--){ for(int left = 0; left <= k; left++){ if(a[pos] == 0){ dp[pos][left] = max(0, solve(pos + 1, left - 1) + a[pos]); } else{ dp[pos][left] = max(0, solve(pos + 1, left) + a[pos]); } } } int res = solve2(1, k); for(int i = 2; i <= n; i++){ res = max(res, solve2(i, k)); } cout << res << "\n"; return 0; }