#include using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; if(2 * k - 1 > n){ cout << "Impossible\n"; return 0; } constexpr ll INF = 1ll << 60; array dp0, dp1; dp0.fill(-INF); dp1.fill(-INF); dp0[0] = 0; for(int i = 0, v; i < n; i++){ cin >> v; array ndp0 = dp0, ndp1; ndp1.fill(-INF); for(int j = k; j >= 0; j--){ ndp0[j] = max(ndp0[j], dp1[j]); if(j) ndp1[j] = max(ndp1[j], dp0[j - 1] + v); } dp0 = ndp0; dp1 = ndp1; } ll ans = max(dp0[k], dp1[k]); if(ans < -(1ll << 40)) cout << "Impossible\n"; else cout << ans << "\n"; }