N, K = map(int, input().split()) A = list(map(int, input().split())) inf = 10**18 dp = [[-inf, -inf] for _ in range(K+1)] ceil = lambda n, d: (n + d - 1) // d if K > ceil(N, 2): print("Impossible") exit() dp[0][0] = 0 for a in A: ndp = [[-inf, -inf] for _ in range(K+1)] for k in range(K+1): ndp[k][0] = max(ndp[k][0], dp[k][1], dp[k][0]) if k+1 <= K: ndp[k+1][1] = max(ndp[k+1][1], dp[k][0]+a) dp = ndp ans = max(dp[k][0], dp[k][1]) print(ans)