#include using namespace std; using ll = long long; #define rep(i, a, b) for (ll i = (a); i < (ll)(b); i++) #define all(x) x.begin(), x.end() const ll INF = 1001001001001001001; template inline bool chmax(T& a, const T& b) { return ((a < b) ? (a = b, true) : (false)); } void solve() { int N, K; cin >> N >> K; vector A(N); rep(i, 0, N) cin >> A[i]; if (K * 2 - 1 > N) { cout << "Impossible\n"; return; } vector dp(N + 1, vector(K + 1, vector(2, -INF))); dp[0][0][0] = 0; rep(i, 0, N) { rep(j, 0, K) { chmax(dp[i + 1][j][0], dp[i][j][0]); chmax(dp[i + 1][j][0], dp[i][j][1]); chmax(dp[i + 1][j + 1][1], dp[i][j][0] + A[i]); } } ll ans = -INF; chmax(ans, dp[N][K][0]); chmax(ans, dp[N][K][1]); cout << ans << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T = 1; // cin >> T; while (T--) { solve(); } }