#include #include #include #include using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, K; cin >> N >> K; vector A(N); for (int i = 0; i < N; i++) cin >> A[i]; ll INF = 1ll << 60; vector>> dp(N + 1, vector>(K + 1, vector(2, -INF))); dp[0][0][0] = 0; for (int i = 0; i < N; i++) for (int j = 0; j <= K; j++) { dp[i + 1][j][0] = max(dp[i][j][0], dp[i][j][1]); if (j < K && dp[i][j][0] != -INF) { dp[i + 1][j + 1][1] = dp[i][j][0] + A[i]; } } ll ans = max(dp[N][K][0], dp[N][K][1]); if (ans == -INF) { cout << "Impossible\n"; } else { cout << ans << '\n'; } }