output_description: Print a sequence of the minimum in a line. Print a space character between
  adjacent elements.
input_description: The input is given in the following format.
  
  $N$ $L$  
  $a_1$ $a_2$ ... $a_N$
attempt: def ascend(a, b):
      mini = min(A[a : a + L])
      ans[a] = mini
      for i in range(a + 1, b):
          if A[i + L - 1] <= mini:
              mini = A[i + L - 1]
          elif A[i - 1] == mini:
              mini = min(A[i : i + L])
          ans[i] = mini
  
  
  def descend(a, b):
      mini = min(A[b - 1 : b + L - 1])
      ans[b - 1] = mini
      for i in range(b - 2, a - 1, -1):
          if A[i] <= mini:
              mini = A[i]
          elif A[i + L] == mini:
              mini = min(A[i : i + L])
          ans[i] = mini
  
  
  [N, L] = [int(x) for x in input().split()]
  A = [int(x) for x in input().split()]
  ans = [None] * (N - L + 1)
  
  Pcount = 0
  Mcount = 0
  if N > 10**4:
      for i in range(100):
          if A[i + 1] > A[i]:
              Pcount += 1
          if A[i + 1] < A[i]:
              Mcount += 1
      if Pcount > 80:
          descend(0, N - L + 1)
      else:
          ascend(0, N - L + 1)
  else:
      ascend(0, N - L + 1)
  for i in ans[:-1]:
      print(i, end=" ")
  print(ans[-1])
  
problem_description: Sliding Minimum Element
  
  For a given array $a_1, a_2, a_3, ... , a_N$ of $N$ elements and an integer
  $L$, find the minimum of each possible sub-arrays with size $L$ and print them
  from the beginning. For example, for an array $\\{1, 7, 7, 4, 8, 1, 6\\}$ and
  $L = 3$, the possible sub-arrays with size $L = 3$ includes $\\{1, 7, 7\\}$,
  $\\{7, 7, 4\\}$, $\\{7, 4, 8\\}$, $\\{4, 8, 1\\}$, $\\{8, 1, 6\\}$ and the
  minimum of each sub-array is 1, 4, 4, 1, 1 respectively.
samples: [{"input": "7 3\n    1 7 7 4 8 1 6", "output": "1 4 4 1 1"}]