#include
#include
#include
using namespace __gnu_pbds;
using namespace std;
typedef long long ll;
typedef tree , null_type, less>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
int main() {
ios_base::sync_with_stdio(false);
ordered_set o_set;
int n, k;
cin >> n >> k;
vector v(n);
for(int i = 0; i < n; i++) {
cin >> v[i];
o_set.insert(make_pair(v[i], i));
if(i >= k) {
o_set.erase(o_set.lower_bound(make_pair(v[i - k], 0)));
}
if(i >= k - 1) {
cout << (*o_set.find_by_order((k - 1) / 2)).first << " ";
}
}
return 0;
}