#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
#define int long long
const int inf = LLONG_MAX >> 1;
signed main() {
int n,k;cin>>n>>k;
vector<int> a(n);
for(int &i : a){
cin>>i;
}
ordered_set<pair<int,int>> st;
for(int i = 0;i<k;i++){
st.insert({a[i],i});
}
int ans = st.find_by_order((k-1)/2)->first;
cout<<ans<<" ";
for(int i = k;i<n;i++){
st.erase({a[i-k],i-k});
st.insert({a[i],i});
int ans = st.find_by_order((k-1)/2)->first;
cout<<ans<<" ";
}
cout<<endl;
}