/* Authors: Vu Hoang Bach from Phuoc Hoa Secondary School */
/* Enjoy TheFatRat's music while reading my code. Link: https://w...content-available-to-author-only...e.com/watch?v=GCx9FU59FJc&t=669s */
//#pragma GCC optimize("O3", "unroll-loops")
//#pragma GCC target("avx2", "bmi", "bmi2", "lzcnt", "popcnt")
#include <bits/stdc++.h>
#define ldb long double
//#define double ldb
#define db double
#define name "test"
#define unomap unordered_map
#define unoset unordered_set
#define endl '\n'
#define str string
#define strstr stringstream
#define sz(a) a.size()
#define ll long long
//#define int ll
#define pii pair <int, int>
#define pll pair <ll, ll>
#define Unique(a) a.resize(unique(all(a)) - a.begin())
#define ull unsigned ll
#define fir first
#define sec second
#define idc cin.ignore()
#define lb lower_bound
#define ub upper_bound
#define all(s) s.begin(), s.end()
#define rev reverse
#define sigma ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define skibidi int main
#define rizz signed main
#define gcd __gcd
#define found(a, mp) mp.find(a) != mp.end()
#define game_over exit(0);
#define stfu return 0;
#define stop break;
#define odd(n) n & 1
#define pushb push_back
#define popb pop_back
#define pushf push_front
#define popf pop_front
#define even(n) !odd(n)
#define mul2x(a, x) a << x
#define div2x(a, x) a >> x
#define no_check continue;
#define lcm(a, b) a / __gcd(a, b) * b
#define log_base(x, base) log(x) / log(base)
#define debug clog << "No errors!"; game_over;
#define forw(i, a, b) for (int i = a; i <= b; ++i)
#define forw2(i, a, b) for (ll i = a; i <= b; ++i)
#define fors(i, a, b) for (int i = a; i >= b; --i)
#define fors2(i, a, b) for (ll i = a; i >= b; --i)
#define meme memset
#define pqueue priority_queue
#define want_digit(x) cout << fixed << setprecision(x);
#define excuting_time 1000.0 * clock() / CLOCKS_PER_SEC
#define pil pair <int, ll>
using namespace std;
const int MOD = 1e9 + 7; // 998244353
const int inf = 1e9;
const ll INF = 1e18;
const int N = 4e5;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll random(const ll &L, const ll &R)
{
return uniform_int_distribution<ll> (L, R) (rng);
}
template <class X, class Y>
bool maximize(X &x, const Y &y)
{
return x < y ? x = y, true : false;
}
struct query
{
int last, start, finish;
query()
{
last = 0;
}
};
pil mx(const pil &x, const pil &y)
{
if (x.sec >= y.sec)
return x;
return y;
}
query res[N + 5];
int n, k, a[N + 5];
ll sum[N + 5], dp[N + 5], ans = 0;
pil pre[N + 5];
deque <int> dq;
ll get(int ind)
{
return pre[ind - 2].sec - sum[ind - 1];
}
void cook()
{
cin >> n >> k;
forw (i, 1, n) cin >> a[i], sum[i] = sum[i - 1] + a[i];
forw (i, 1, k - 1)
{
dp[i] = sum[i];
pre[i] = mx(pre[i - 1], pil(i, dp[i]));
res[i].last = i - 1; res[i].start = 1; res[i].finish = i;
}
forw (i, 2, k - 1)
{
while (!dq.empty() && get(dq.back()) <= get(i)) dq.popf();
dq.pushb(i);
}
forw (i, k, n)
{
while (!dq.empty() && dq.front() < i - k + 2) dq.popf();
while (!dq.empty() && get(dq.back()) <= get(i)) dq.popb();
dq.pushb(i);
dp[i] = sum[i] + get(dq.front());
pre[i] = mx(pre[i - 1], pil(i, dp[i]));
res[i].last = pre[dq.front() - 2].first;
res[i].start = dq.front(); res[i].finish = i;
}
ll ans = 0;
int ind = 1;
forw (i, 1, n)
if (maximize(ans, dp[i])) ind = i;
vector <int> v;
while (ind)
{
fors (i, res[ind].finish, res[ind].start) v.pushb(i);
ind = res[ind].last;
}
rev(all(v));
cout << sz(v) << ' ' << ans << endl;
forw (i, 0, sz(v) - 1) cout << v[i] << ' ';
cout << endl;
}
skibidi()
//rizz()
{
srand(time(NULL));
sigma;
/*
if (fopen(name".INP", "r"))
{
freopen(name".INP", "r", stdin);
freopen(name".OUT", "w", stdout);
}
*/
int numTest = 1;
// cin >> numTest;
while (numTest--)
{
cook();
}
stfu;
}
LyogQXV0aG9yczogVnUgSG9hbmcgQmFjaCBmcm9tIFBodW9jIEhvYSBTZWNvbmRhcnkgU2Nob29sICovCi8qIEVuam95IFRoZUZhdFJhdCdzIG11c2ljIHdoaWxlIHJlYWRpbmcgbXkgY29kZS4gTGluazogaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmNvbS93YXRjaD92PUdDeDlGVTU5RkpjJnQ9NjY5cyAqLwoKLy8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzMiLCAidW5yb2xsLWxvb3BzIikKLy8jcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIiLCAiYm1pIiwgImJtaTIiLCAibHpjbnQiLCAicG9wY250IikKCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGxkYiBsb25nIGRvdWJsZQovLyNkZWZpbmUgZG91YmxlIGxkYgojZGVmaW5lIGRiIGRvdWJsZQojZGVmaW5lIG5hbWUgInRlc3QiCiNkZWZpbmUgdW5vbWFwIHVub3JkZXJlZF9tYXAKI2RlZmluZSB1bm9zZXQgdW5vcmRlcmVkX3NldAojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIHN0ciBzdHJpbmcKI2RlZmluZSBzdHJzdHIgc3RyaW5nc3RyZWFtCiNkZWZpbmUgc3ooYSkgYS5zaXplKCkKI2RlZmluZSBsbCBsb25nIGxvbmcKLy8jZGVmaW5lIGludCBsbAojZGVmaW5lIHBpaSBwYWlyIDxpbnQsIGludD4KI2RlZmluZSBwbGwgcGFpciA8bGwsIGxsPgojZGVmaW5lIFVuaXF1ZShhKSBhLnJlc2l6ZSh1bmlxdWUoYWxsKGEpKSAtIGEuYmVnaW4oKSkKI2RlZmluZSB1bGwgdW5zaWduZWQgbGwKI2RlZmluZSBmaXIgZmlyc3QKI2RlZmluZSBzZWMgc2Vjb25kCiNkZWZpbmUgaWRjIGNpbi5pZ25vcmUoKQojZGVmaW5lIGxiIGxvd2VyX2JvdW5kCiNkZWZpbmUgdWIgdXBwZXJfYm91bmQKI2RlZmluZSBhbGwocykgcy5iZWdpbigpLCBzLmVuZCgpCiNkZWZpbmUgcmV2IHJldmVyc2UKI2RlZmluZSBzaWdtYSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApLCBjaW4udGllKDApLCBjb3V0LnRpZSgwKTsKI2RlZmluZSBza2liaWRpIGludCBtYWluCiNkZWZpbmUgcml6eiBzaWduZWQgbWFpbgojZGVmaW5lIGdjZCBfX2djZAojZGVmaW5lIGZvdW5kKGEsIG1wKSBtcC5maW5kKGEpICE9IG1wLmVuZCgpCiNkZWZpbmUgZ2FtZV9vdmVyIGV4aXQoMCk7CiNkZWZpbmUgc3RmdSByZXR1cm4gMDsKI2RlZmluZSBzdG9wIGJyZWFrOwojZGVmaW5lIG9kZChuKSBuICYgMQojZGVmaW5lIHB1c2hiIHB1c2hfYmFjawojZGVmaW5lIHBvcGIgcG9wX2JhY2sKI2RlZmluZSBwdXNoZiBwdXNoX2Zyb250CiNkZWZpbmUgcG9wZiBwb3BfZnJvbnQKI2RlZmluZSBldmVuKG4pICFvZGQobikKI2RlZmluZSBtdWwyeChhLCB4KSBhIDw8IHgKI2RlZmluZSBkaXYyeChhLCB4KSBhID4+IHgKI2RlZmluZSBub19jaGVjayBjb250aW51ZTsKI2RlZmluZSBsY20oYSwgYikgYSAvIF9fZ2NkKGEsIGIpICogYgojZGVmaW5lIGxvZ19iYXNlKHgsIGJhc2UpIGxvZyh4KSAvIGxvZyhiYXNlKQojZGVmaW5lIGRlYnVnIGNsb2cgPDwgIk5vIGVycm9ycyEiOyBnYW1lX292ZXI7CiNkZWZpbmUgZm9ydyhpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA8PSBiOyArK2kpCiNkZWZpbmUgZm9ydzIoaSwgYSwgYikgZm9yIChsbCBpID0gYTsgaSA8PSBiOyArK2kpCiNkZWZpbmUgZm9ycyhpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA+PSBiOyAtLWkpCiNkZWZpbmUgZm9yczIoaSwgYSwgYikgZm9yIChsbCBpID0gYTsgaSA+PSBiOyAtLWkpCiNkZWZpbmUgbWVtZSBtZW1zZXQKI2RlZmluZSBwcXVldWUgcHJpb3JpdHlfcXVldWUKI2RlZmluZSB3YW50X2RpZ2l0KHgpIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKHgpOwojZGVmaW5lIGV4Y3V0aW5nX3RpbWUgMTAwMC4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDCiNkZWZpbmUgcGlsIHBhaXIgPGludCwgbGw+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBNT0QgPSAxZTkgKyA3OyAvLyA5OTgyNDQzNTMKY29uc3QgaW50IGluZiA9IDFlOTsKY29uc3QgbGwgSU5GID0gMWUxODsKY29uc3QgaW50IE4gPSA0ZTU7CgptdDE5OTM3XzY0IHJuZyhjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwpsbCByYW5kb20oY29uc3QgbGwgJkwsIGNvbnN0IGxsICZSKQp7CiAgICByZXR1cm4gdW5pZm9ybV9pbnRfZGlzdHJpYnV0aW9uPGxsPiAoTCwgUikgKHJuZyk7Cn0KCnRlbXBsYXRlIDxjbGFzcyBYLCBjbGFzcyBZPgpib29sIG1heGltaXplKFggJngsIGNvbnN0IFkgJnkpCnsKICAgIHJldHVybiB4IDwgeSA/IHggPSB5LCB0cnVlIDogZmFsc2U7Cn0KCnN0cnVjdCBxdWVyeQp7CiAgICBpbnQgbGFzdCwgc3RhcnQsIGZpbmlzaDsKICAgIHF1ZXJ5KCkKICAgIHsKICAgICAgICBsYXN0ID0gMDsKICAgIH0KfTsKCnBpbCBteChjb25zdCBwaWwgJngsIGNvbnN0IHBpbCAmeSkKewogICAgaWYgKHguc2VjID49IHkuc2VjKQogICAgICAgIHJldHVybiB4OwogICAgcmV0dXJuIHk7Cn0KCnF1ZXJ5IHJlc1tOICsgNV07CmludCBuLCBrLCBhW04gKyA1XTsKbGwgc3VtW04gKyA1XSwgZHBbTiArIDVdLCBhbnMgPSAwOwpwaWwgcHJlW04gKyA1XTsKZGVxdWUgPGludD4gZHE7CgpsbCBnZXQoaW50IGluZCkKewogICAgcmV0dXJuIHByZVtpbmQgLSAyXS5zZWMgLSBzdW1baW5kIC0gMV07Cn0KCnZvaWQgY29vaygpCnsKICAgIGNpbiA+PiBuID4+IGs7CiAgICBmb3J3IChpLCAxLCBuKSBjaW4gPj4gYVtpXSwgc3VtW2ldID0gc3VtW2kgLSAxXSArIGFbaV07CgogICAgZm9ydyAoaSwgMSwgayAtIDEpCiAgICB7CiAgICAgICAgZHBbaV0gPSBzdW1baV07CiAgICAgICAgcHJlW2ldID0gbXgocHJlW2kgLSAxXSwgcGlsKGksIGRwW2ldKSk7CiAgICAgICAgcmVzW2ldLmxhc3QgPSBpIC0gMTsgcmVzW2ldLnN0YXJ0ID0gMTsgcmVzW2ldLmZpbmlzaCA9IGk7CiAgICB9CgogICAgZm9ydyAoaSwgMiwgayAtIDEpCiAgICB7CiAgICAgICAgd2hpbGUgKCFkcS5lbXB0eSgpICYmIGdldChkcS5iYWNrKCkpIDw9IGdldChpKSkgZHEucG9wZigpOwogICAgICAgIGRxLnB1c2hiKGkpOwogICAgfQoKICAgIGZvcncgKGksIGssIG4pCiAgICB7CiAgICAgICAgd2hpbGUgKCFkcS5lbXB0eSgpICYmIGRxLmZyb250KCkgPCBpIC0gayArIDIpIGRxLnBvcGYoKTsKICAgICAgICB3aGlsZSAoIWRxLmVtcHR5KCkgJiYgZ2V0KGRxLmJhY2soKSkgPD0gZ2V0KGkpKSBkcS5wb3BiKCk7CiAgICAgICAgZHEucHVzaGIoaSk7CiAgICAgICAgZHBbaV0gPSBzdW1baV0gKyBnZXQoZHEuZnJvbnQoKSk7CiAgICAgICAgcHJlW2ldID0gbXgocHJlW2kgLSAxXSwgcGlsKGksIGRwW2ldKSk7CiAgICAgICAgcmVzW2ldLmxhc3QgPSBwcmVbZHEuZnJvbnQoKSAtIDJdLmZpcnN0OwogICAgICAgIHJlc1tpXS5zdGFydCA9IGRxLmZyb250KCk7IHJlc1tpXS5maW5pc2ggPSBpOwogICAgfQoKICAgIGxsIGFucyA9IDA7CiAgICBpbnQgaW5kID0gMTsKICAgIGZvcncgKGksIDEsIG4pCiAgICAgICAgaWYgKG1heGltaXplKGFucywgZHBbaV0pKSBpbmQgPSBpOwoKICAgIHZlY3RvciA8aW50PiB2OwogICAgd2hpbGUgKGluZCkKICAgIHsKICAgICAgICBmb3JzIChpLCByZXNbaW5kXS5maW5pc2gsIHJlc1tpbmRdLnN0YXJ0KSB2LnB1c2hiKGkpOwogICAgICAgIGluZCA9IHJlc1tpbmRdLmxhc3Q7CiAgICB9CiAgICByZXYoYWxsKHYpKTsKICAgIGNvdXQgPDwgc3oodikgPDwgJyAnIDw8IGFucyA8PCBlbmRsOwogICAgZm9ydyAoaSwgMCwgc3oodikgLSAxKSBjb3V0IDw8IHZbaV0gPDwgJyAnOwogICAgY291dCA8PCBlbmRsOwp9Cgpza2liaWRpKCkKLy9yaXp6KCkKewogICAgc3JhbmQodGltZShOVUxMKSk7CiAgICBzaWdtYTsKICAgIC8qCiAgICBpZiAoZm9wZW4obmFtZSIuSU5QIiwgInIiKSkKICAgIHsKICAgICAgICBmcmVvcGVuKG5hbWUiLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4obmFtZSIuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQogICAgKi8KICAgIGludCBudW1UZXN0ID0gMTsKLy8gICAgY2luID4+IG51bVRlc3Q7CiAgICB3aGlsZSAobnVtVGVzdC0tKQogICAgewogICAgICAgIGNvb2soKTsKICAgIH0KICAgIHN0ZnU7Cn0K