#include<bits/stdc++.h>
using namespace std;
const int maxN=1e6+10;
deque<int>q;
int n,k,a[maxN];
int read();
void write(int),work(int);
int main(){
n=read();k=read();
for (int i=1;i<=n;i++) a[i]=read();
work(1);
work(-1);
return 0;
}
inline void work(int t){
q.clear();
for (int i=1;i<=n;i++){
while (!q.empty()&&q.front()<=i-k) q.pop_front();
while (!q.empty()&&a[q.back()]*t>=a[i]*t) q.pop_back();
q.push_back(i);
if (i>=k) write(a[q.front()]),putchar(' ');
}
puts("");
}
inline int read(){
int s=0,f=1;
char ch=getchar();
while (!isdigit(ch)){
if (ch=='-') f=-1;
ch=getchar();
}
while (isdigit(ch)){
s=s*10+(ch-'0');
ch=getchar();
}
return s*f;
}
inline void write(int x){
if (x<0){
putchar('-');
x=-x;
}
if (x>9){
write(x/10);
putchar(x%10+'0');
}
putchar(x+'0');
}
在线等待大佬神助Orz