N, K = map(int, input().split()) A = list(map(int, input().split())) if N // 2 + N % 2 < K: exit(print("Impossible")) INF = 10**20 dp = [[-INF] * 2 for _ in range(K + 1)] PASSED = 0 BANNED = 1 dp[0][PASSED] = 0 for submit_idx in range(N): ndp = [[-INF] * 2 for _ in range(K + 1)] for ban_cnt in range(K): for prv in (PASSED, BANNED): # pass ndp[ban_cnt][PASSED] = max(ndp[ban_cnt][PASSED], dp[ban_cnt][prv]) if prv == PASSED: # ban ndp[ban_cnt + 1][BANNED] = max( ndp[ban_cnt + 1][BANNED], dp[ban_cnt][prv] + A[submit_idx] ) dp, ndp = ndp, dp # print(dp) print(max(dp[K]))