output_description: Print the minimum possible number of subarrays after division of A.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 ... A_N
attempt: N = int(input())
  A = list(map(int,input().split()))
  count = 0
  up = 0
  down = 0
  before = A[0]
  tmp = 0
  for i in range(1,N):
    tmp = A[i]
    if (up == 0) and (down == 0):
      if tmp > before:
        up = 1
        before = tmp
      elif tmp < before:
        down = 1
        before = tmp
      else:
        continue
    elif up == 1:
      if tmp < before:
        count += 1
        up = 0
        before = tmp
    elif down = 1:
      if tmp > before:
        count += 1
        down = 0
        before = tmp
  count += 1
  print(count)
        
problem_description: Statement
  
  You are given an array A of length N. Your task is to divide it into several
  contiguous subarrays. Here, all subarrays obtained must be sorted in either
  non-decreasing or non-increasing order. At least how many subarrays do you
  need to divide A into?
samples: [{"input": "6\n    1 2 3 2 2 1", "output": "2\n    \n\nOne optimal solution is to divide the array into [1,2,3] and [2,2,1].\n\n* * *"}, {"input": "9\n    1 2 1 2 1 2 1 2 1", "output": "5\n    \n\n* * *"}, {"input": "7\n    1 2 3 2 1 999999999 1000000000", "output": "3"}]