#include using namespace std; #define ll long long #define vl vector #define vvl vector template inline int chmax(T &a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline int chmin(T &a, T b) { if (a > b) { a = b; return 1; } return 0; } auto _ = []() { ios::sync_with_stdio(false); cin.tie(nullptr); return 0; }(); ll INF = 1e18; int main() { ll N, K; cin >> N >> K; if (K > (N + 1) / 2) { cout << "Impossible" << "\n"; return 0; } vl A(N); for (auto& x : A) cin >> x; vl dp0(K + 1, -INF); vl dp1(K + 1, -INF); dp0[0] = 0; for (int i = 0; i < N; i++) { for (int j = K; j >= 0; j--) { ll p_dp0 = dp0[j]; if (dp0[j] != -INF || dp1[j] != -INF) dp0[j] = max(dp0[j], dp1[j]); if (j > 0 && dp0[j - 1] != -INF) chmax(dp1[j], dp0[j - 1] + A[i]); else dp1[j] = -INF; } } ll ans = max(dp0[K], dp1[K]); cout << ans << "\n"; return 0; }