#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;

int a[N],k,n; 


void solve(){
	
	deque<int> dq;
	
	for(int i=1;i<=k;i++){
		if(dq.empty()) {
			dq.push_back(i);
			continue;
		}
		while(!dq.empty()&&a[dq.back()]<a[i]){
			dq.pop_back();
		}
		dq.push_back(i);
	}
	
	vector<int> res;
	res.push_back(dq.front());
	for(int i=2;i<=n-k+1;i++){
		if(dq.front()==i-1) dq.pop_front();
		while(!dq.empty()&&a[dq.back()]<a[i+k-1]){
			dq.pop_back();
		}
		dq.push_back(i+k-1);
		res.push_back(dq.front());
	}
	
	for(int i:res){
		cout<<a[i]<<" ";
	}
	return;
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	
	solve();

    return 0;
}