int n, k; cin >> n >> k; vector<int> a(n + 1); for (int i = 0; i < n; i++) { cin >> a[i]; } deque<int> dq; vi ans1(n + 1); for (int i = k - 1; i < n; i++) { while (!dq.empty() && dq.front() + k <= i) { dq.pop_front(); } while (!dq.empty() && a[dq.back()] > a[i]) {
dq.pop_back(); } dq.push_back(i); ans1[i] = a[dq.front()]; } for (int i = k - 1; i < n; i++) { cout << ans1[i] << " \n"[i == n - 1]; }