import sys
sys.setrecursionlimit(10**9+7)

Seg_Tree=[0]*4000010

def Construct_Tree(index,left,right,lists) :
    if left == right :
        Seg_Tree[index] = lists[left-1]
    else :
        Construct_Tree(2*(index),left,(left+right)//2,lists)
        Construct_Tree(2*(index)+1,(left+right)//2+1,right,lists)
        Seg_Tree[index] = max(Seg_Tree[index*2],Seg_Tree[(index*2)+1])

def Answer_Queries(pos,left,right,low,high) :
    if low > right or high < left :
        return False
    elif low <= left and high >= right :
        return Seg_Tree[pos]
    else :
        return max(Answer_Queries(2*pos,left,(left+right)//2,low,high),Answer_Queries((2*pos)+1,(left+right)//2+1,right,low,high))

def main(*args,**kwargs) :
    n = input()
    lists = list(map(int,sys.stdin.readline().split()))
    k = input()
    Construct_Tree(1,1,n,lists)
    i,answer=1,[]
    while n >= i+k-1 :
        answer.append(Answer_Queries(1,1,n,i,i+k-1))
        i+=1
    print " ".join(str(i) for i in answer)

if __name__ == "__main__" :
    main()
