def main(): n, k = map(int, input().split()) a = list(map(int, input().split())) # dp[i][j][flg] = 前からi個見て、j個削除していて、i個目を削除した inf = float("inf") # dp = [[[-inf] * 2 for _ in range(k + 1)] for _ in range(n + 1)] dp = [[-inf] * 2 for _ in range(k + 1)] dp[0][0] = 0 for i in range(n): ep = [[-inf] * 2 for _ in range(k + 1)] for j in range(k + 1): # 削除しないとき ep[j][0] = max(ep[j][0], dp[j][0], dp[j][1]) # 削除するとき if j < k: ep[j + 1][1] = max(ep[j + 1][1], dp[j][0] + a[i]) dp, ep = ep, dp ans = max(dp[k][flg] for flg in range(2)) if ans == -inf: print("Impossible") else: print(ans) if __name__ == "__main__": main()