INF = 1i64 << 60 n, k = read_line.split.map(&.to_i) a = read_line.split.map(&.to_i64) dp = Array.new(2) { Array.new(k + 1, -INF) } dp[0][0] = 0 n.times do |i| (k - 1).downto(0) do |j| dp[1][j + 1] = {dp[1][j + 1], dp[0][j] + a[i]}.max if dp[0][j] != -INF dp[0][j] = {dp[0][j], dp[1][j]}.max if dp[1][j] != -INF end end ans = {dp[0][-1], dp[1][-1]}.max puts ans == -INF ? "Impossible" : ans