#include #define rep(i,n) for (int i=0; i < (int)(n); i++) #define all(c) c.begin(), c.end() using namespace std; typedef long long ll; typedef long double ld; using vi = vector; using vvi = vector; using vl = vector; using vvl = vector; void chmax(ll& a, ll b) { a = max(a,b); } int main() { ios::sync_with_stdio(0); cin.tie(0); //入出力高速化 //DP int N,K; cin>>N>>K; ll INF = 1e18; vvl dp(K+1, vl(2, -INF)); dp[0][0] = 0; //dp[何個][1:直前を削除] rep(ni,N) { ll a; cin>>a; vvl ep(K+1, vl(2, -INF)); rep(i,K+1) { //削除しないパターン ep[i][0] = max(dp[i][0], dp[i][1]); //削除するパターン if(i == K) continue; if(dp[i][0] == -INF) continue; chmax(ep[i+1][1], dp[i][0] + a); } swap(dp,ep); } ll ans = max(dp[K][0], dp[K][1]); if(ans == -INF) cout<<"Impossible"<