#include <iostream>
#include <deque>
using namespace std;
FILE *in = fopen("secventa.in", "r"), *out = fopen("secventa.out", "w");
int N, K;
int A[500005];
std::deque<int> D;
int max_base = -35000, st, en;
int main()
{
fscanf(in, "%d %d", &N, &K);
for (int i = 1; i <= N; ++i){
fscanf(in, "%d", &A[i]);
while(!D.empty() && A[D.back()] > A[i])
D.pop_back();
D.push_back(i);
if (D.front() == i - K)
D.pop_front();
if (i >= K){
if (A[D.front()] > max_base){
max_base = A[D.front()];
st = i - K + 1;
en = i;
}
}
}
//for(int i = en + 1; i <= N && A[i] >= max_base; ++i)
// ++en;
fprintf(out, "%d %d %d", st, en, max_base);
return 0;
}