#include <iostream>
#include <vector>
#include <fstream>
#include <algorithm>
#include <cstring>
#define x first
#define y second
#include <deque>
using namespace std;
ifstream fin("secventa.in");
ofstream fout("secventa.out");
int n,m,ld,ls,maxi=-4000000,i,j,x,y,z,d,v[500001],k,a;
deque <int> D1,D2;
int main()
{
fin>>n>>k;
for(i=1;i<=n;i++)
fin>>v[i];
for(i=1;i<=n;i++)
{
if(!D1.empty()&&D1.front()<=i-k)
D1.pop_front();
while(!D1.empty()&&v[D1.back()]>v[j])
D1.pop_back();
D1.push_back(i);
if(i>=k)
{
if(v[D1.front()]>maxi)
maxi=v[D1.front()],a=i-k+1;
}
}
for(i=a;i<=a+k-1;i++)
fout<<v[i]<<" ";
return 0;
}