#include <stdio.h>
#define MAX 1000
int deque[MAX];
int main() {
int n, k;
if (n <= 0) return 0;
int arr[MAX];
for (int i
= 0; i
< n
; i
++) scanf("%d", &arr
[i
]);
if (k <= 0 || k > n) return 0;
int front = 0, rear = -1;
for (int i = 0; i < n; i++) {
// Remove out-of-window indices
if (front <= rear && deque[front] <= i - k)
front++;
// Remove smaller elements
while (front <= rear && arr[deque[rear]] <= arr[i])
rear--;
deque[++rear] = i;
if (i >= k - 1)
printf("%d ", arr
[deque
[front
]]); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE1BWCAxMDAwCgppbnQgZGVxdWVbTUFYXTsKCmludCBtYWluKCkgewogICAgaW50IG4sIGs7CiAgICBzY2FuZigiJWQiLCAmbik7CgogICAgaWYgKG4gPD0gMCkgcmV0dXJuIDA7CgogICAgaW50IGFycltNQVhdOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHNjYW5mKCIlZCIsICZhcnJbaV0pOwoKICAgIHNjYW5mKCIlZCIsICZrKTsKCiAgICBpZiAoayA8PSAwIHx8IGsgPiBuKSByZXR1cm4gMDsKCiAgICBpbnQgZnJvbnQgPSAwLCByZWFyID0gLTE7CgogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCiAgICAgICAgLy8gUmVtb3ZlIG91dC1vZi13aW5kb3cgaW5kaWNlcwogICAgICAgIGlmIChmcm9udCA8PSByZWFyICYmIGRlcXVlW2Zyb250XSA8PSBpIC0gaykKICAgICAgICAgICAgZnJvbnQrKzsKCiAgICAgICAgLy8gUmVtb3ZlIHNtYWxsZXIgZWxlbWVudHMKICAgICAgICB3aGlsZSAoZnJvbnQgPD0gcmVhciAmJiBhcnJbZGVxdWVbcmVhcl1dIDw9IGFycltpXSkKICAgICAgICAgICAgcmVhci0tOwoKICAgICAgICBkZXF1ZVsrK3JlYXJdID0gaTsKCiAgICAgICAgaWYgKGkgPj0gayAtIDEpCiAgICAgICAgICAgIHByaW50ZigiJWQgIiwgYXJyW2RlcXVlW2Zyb250XV0pOwogICAgfQoKICAgIHJldHVybiAwOwp9