#include
using namespace std;
#include
void window(deque g,int a[],int n,int k){
int max=0;
int f=0;;
for(int i=0;i<k;i++){
if(max<a[i]){
max=a[i];
f=i;
}}
for(int l=f;l<k;l++){
g.push_back(l); }
for(int d=k;d<n;d++){
cout<<a[g.front()]<<" ";
while(!g.empty()&&a[d]>=a[g.back()]){
g.pop_back();
}
while((!g.empty())&&(g.front()<=(d-k))){
g.pop_front();
}
g.push_back(d);
}
cout<<a[g.front()];
}
int main()
{
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
int k;
cin>>k;
deque g;
window(g,a,n,k);
return 0;
}