import java.util.*;
public class Main {
public static void printMaxSlidingWindow(int[] arr, int n, int k) {
Deque<Integer> deque = new LinkedList<>();
int i;
for (i = 0; i < k; i++) {
while (!deque.isEmpty() && arr[i] >= arr[deque.peekLast()]) {
deque.removeLast();
}
deque.addLast(i);
}
for (; i < n; i++) {
System.out.print(arr[deque.peek()] + " ");
while (!deque.isEmpty() && deque.peek() <= i - k) {
deque.removeFirst();
}
while (!deque.isEmpty() && arr[i] >= arr[deque.peekLast()]) {
deque.removeLast();
}
deque.addLast(i);
}
System.out.println(arr[deque.peek()]);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt();
}
int k = scanner.nextInt();
printMaxSlidingWindow(arr, n, k);
}
}