#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; }