#include using namespace std; using ll = long long; #define rep(i, n) for (int i = 0; i < (int)(n); i++) int main() { cin.tie(nullptr); ios_base::sync_with_stdio(false); int n, k; cin >> n >> k; if ((n + 1) / 2 < k) { cout << "Impossible" << endl; return 0; } vector dp(k + 1, vector(2, -1LL << 60)); dp[0][0] = 0; while (n--) { int a; cin >> a; vector ep(k + 1, vector(2, -1LL << 60)); rep(i, k + 1) { if (i != k) ep[i + 1][1] = max(ep[i + 1][1], dp[i][0] + a); ep[i][0] = max(ep[i][0], dp[i][0]); ep[i][0] = max(ep[i][0], dp[i][1]); } dp = ep; } cout << max(dp.back()[0], dp.back()[1]) << endl; return 0; }