学会 deque
from collections import deque
def soul(nums,k):
d=deque(maxlen=k)
res=list()
for i,n in enumerate(nums):
if i<k-1:
if i==0:
d.append(i)
else:
while d and n > nums[d[-1]]:
d.pop()
d.append(i)
continue
else:
while d and i-d[0]>=k:
d.popleft()
while d and n > nums[d[-1]]:
d.pop()
d.append(i)
res.append(nums[d[0]])
return res
n,k=map(int ,input().split())
nums=list(map(int ,input().split()))
resl=soul(nums,k)
print(" ".join(map(str,resl)))