#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
#define print(a) for(auto x : a) cout << x << " "; cout << endl
inline int power(int a, int b) {
int x = 1;
while (b) {
if (b & 1) x *= a;
a *= a;
b >>= 1;
}
return x;
}
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
//_ ***************************** START Below *******************************
vector<int> a;
pair<int,int> getMaxSubarraySum(int n, int d, double mean){
// Subtract a small epsilon to handle precision loss
mean = mean - 1e-12;
vector<double> t(n);
for(int i=0; i<n; i++){
t[i] = a[i] - mean;
}
vector<double> prefix(n);
double sum = 0;
double mini = 0;
int miniI = -1;
for(int i=0; i<n; i++){
sum += t[i];
if(i-d>=-1){
double lastSum = i-d==-1 ? 0 : prefix[i-d];
if(lastSum < mini){
mini = lastSum;
miniI = i-d;
}
double maxSum = sum - mini;
if(maxSum >= 0){
return {miniI+2, i+1 };
}
}
prefix[i] = sum;
}
return {1, 1+d};
}
bool isPossible(int n, int d, double mid){
vector<double> transformed(n);
for(int i=0; i<n; i++){
transformed[i] = a[i] - mid;
}
vector<double> prefix(n);
double sum = 0;
double maxSum = -INF;
double mini = 0; //* Null == 0 for prefix Sum
// double mini = INF; //* Not suited here
for(int i=0; i<n; i++){
sum += transformed[i];
if(i-d>=-1){
double lastSum = i-d==-1 ? 0 : prefix[i-d];
mini = min(mini, lastSum);
maxSum = max(maxSum, sum-mini);
}
prefix[i] = sum;
}
return maxSum >= 0;
}
pair<int,int> consistency(int n, int d){
double s = -INF;
double e = INF;
double maxMean = 0;
for(int i=1; i<=100; i++){
double mid = s + (e-s)/2;
if(isPossible(n, d, mid)){
maxMean = mid;
s = mid;
}
else e = mid;
}
auto indices = getMaxSubarraySum(n, d, maxMean);
return indices;
}
pair<int,int> practice(int n, int d){
return {};
}
void solve() {
int n, d;
cin>>n>>d;
a.resize(n);
for(int i=0; i<n; i++) cin >> a[i];
auto ans1 = consistency(n, d);
cout << ans1.first << " " << ans1.second << endl;
// auto p = practice(n, d);
// cout << ans1.first << " " << ans1.second << " -> " << p.first << " " << p.second << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQojZGVmaW5lIHByaW50KGEpICAgICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeCA8PCAiICI7IGNvdXQgPDwgZW5kbAppbmxpbmUgaW50IHBvd2VyKGludCBhLCBpbnQgYikgewogICAgaW50IHggPSAxOwogICAgd2hpbGUgKGIpIHsKICAgICAgICBpZiAoYiAmIDEpIHggKj0gYTsKICAgICAgICBhICo9IGE7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiB4Owp9CiAKIApjb25zdCBpbnQgTSA9IDEwMDAwMDAwMDc7CmNvbnN0IGludCBOID0gM2U1Kzk7CmNvbnN0IGludCBJTkYgPSAyZTkrMTsKY29uc3QgaW50IExJTkYgPSAyMDAwMDAwMDAwMDAwMDAwMDAxOwogCi8vXyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBTVEFSVCBCZWxvdyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKIAogCgp2ZWN0b3I8aW50PiBhOwoKcGFpcjxpbnQsaW50PiBnZXRNYXhTdWJhcnJheVN1bShpbnQgbiwgaW50IGQsIGRvdWJsZSBtZWFuKXsKCQoJLy8gU3VidHJhY3QgYSBzbWFsbCBlcHNpbG9uIHRvIGhhbmRsZSBwcmVjaXNpb24gbG9zcwoJbWVhbiA9IG1lYW4gLSAxZS0xMjsKCQoJdmVjdG9yPGRvdWJsZT4gdChuKTsKCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJdFtpXSA9IGFbaV0gLSBtZWFuOwoJfQoJCgl2ZWN0b3I8ZG91YmxlPiBwcmVmaXgobik7Cglkb3VibGUgc3VtID0gMDsKCQoJZG91YmxlIG1pbmkgPSAwOwoJaW50IG1pbmlJID0gLTE7CgkKCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJc3VtICs9IHRbaV07CgkJCgkJaWYoaS1kPj0tMSl7CgkJCWRvdWJsZSBsYXN0U3VtID0gaS1kPT0tMSA/IDAgOiBwcmVmaXhbaS1kXTsKCQkJaWYobGFzdFN1bSA8IG1pbmkpewoJCQkJbWluaSA9IGxhc3RTdW07CgkJCQltaW5pSSA9IGktZDsKCQkJfQoJCQkKCQkJZG91YmxlIG1heFN1bSA9IHN1bSAtIG1pbmk7CgkJCQoJCQlpZihtYXhTdW0gPj0gMCl7CgkJCQlyZXR1cm4ge21pbmlJKzIsIGkrMSB9OwoJCQl9CgkJfQoJCQoJCXByZWZpeFtpXSA9IHN1bTsKCX0KCQoJcmV0dXJuIHsxLCAxK2R9Owp9CgoKYm9vbCBpc1Bvc3NpYmxlKGludCBuLCBpbnQgZCwgZG91YmxlIG1pZCl7Cgl2ZWN0b3I8ZG91YmxlPiB0cmFuc2Zvcm1lZChuKTsKCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJdHJhbnNmb3JtZWRbaV0gPSBhW2ldIC0gbWlkOwoJfQoJCgl2ZWN0b3I8ZG91YmxlPiBwcmVmaXgobik7CgkKCWRvdWJsZSBzdW0gPSAwOwoJZG91YmxlIG1heFN1bSA9IC1JTkY7CgkKCWRvdWJsZSBtaW5pID0gMDsgLy8qIE51bGwgPT0gMCBmb3IgcHJlZml4IFN1bQoJLy8gZG91YmxlIG1pbmkgPSBJTkY7IC8vKiBOb3Qgc3VpdGVkIGhlcmUKCQoJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQlzdW0gKz0gdHJhbnNmb3JtZWRbaV07CgkJCgkJaWYoaS1kPj0tMSl7CgkJCWRvdWJsZSBsYXN0U3VtID0gaS1kPT0tMSA/IDAgOiBwcmVmaXhbaS1kXTsKCQkJbWluaSA9IG1pbihtaW5pLCBsYXN0U3VtKTsKCQkJCQoJCQltYXhTdW0gPSBtYXgobWF4U3VtLCBzdW0tbWluaSk7CgkJfQoJCXByZWZpeFtpXSA9IHN1bTsKCX0KCQoJcmV0dXJuIG1heFN1bSA+PSAwOwp9CgoKIApwYWlyPGludCxpbnQ+IGNvbnNpc3RlbmN5KGludCBuLCBpbnQgZCl7CiAKCWRvdWJsZSBzID0gLUlORjsKCWRvdWJsZSBlID0gSU5GOwoJCglkb3VibGUgbWF4TWVhbiA9IDA7CgkKCWZvcihpbnQgaT0xOyBpPD0xMDA7IGkrKyl7CgkJZG91YmxlIG1pZCA9IHMgKyAoZS1zKS8yOwoJCQoJCWlmKGlzUG9zc2libGUobiwgZCwgbWlkKSl7CgkJCW1heE1lYW4gPSBtaWQ7CgkJCXMgPSBtaWQ7CgkJfQoJCWVsc2UgZSA9IG1pZDsKCQkKCX0KIAoJCglhdXRvIGluZGljZXMgPSAgZ2V0TWF4U3ViYXJyYXlTdW0obiwgZCwgbWF4TWVhbik7CgkKCXJldHVybiBpbmRpY2VzOwp9CgoKCgoKCgoKCgoKCgoKCgoKcGFpcjxpbnQsaW50PiBwcmFjdGljZShpbnQgbiwgaW50IGQpewoJCglyZXR1cm4ge307CgkKfQoKCgoKIAp2b2lkIHNvbHZlKCkgewogCiAgICBpbnQgbiwgZDsKICAgIGNpbj4+bj4+ZDsKICAgIGEucmVzaXplKG4pOwogCiAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspIGNpbiA+PiBhW2ldOwogICAgCglhdXRvIGFuczEgPSBjb25zaXN0ZW5jeShuLCBkKTsKCQoJY291dCA8PCBhbnMxLmZpcnN0IDw8ICIgIiA8PCBhbnMxLnNlY29uZCA8PCBlbmRsOwogICAgCiAgICAKCS8vIGF1dG8gcCA9IHByYWN0aWNlKG4sIGQpOwoJLy8gY291dCA8PCBhbnMxLmZpcnN0IDw8ICIgIiA8PCBhbnMxLnNlY29uZCAgPDwgIiAtPiAiIDw8IHAuZmlyc3QgPDwgIiAiIDw8IHAuc2Vjb25kIDw8IGVuZGw7CiAKfQogCiAKIAogCiAKaW50MzJfdCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAKICAgIGludCB0ID0gMTsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQogCiAgICByZXR1cm4gMDsKfQoK