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: # coding=UTF-8
  N = int(input())
  
  mozir = input()
  hyo = mozir.split(" ")
  A = [int(mono) for mono in hyo]
  
  
  subseq_nth = 0
  subseq_mae = None
  subseq_muki = None
  
  for mono in A:
      if subseq_mae == None:
          subseq_nth += 1
          subseq_mae = mono
      #        print('case 1')
      else:
          if subseq_muki == None:
              if subseq_mae == mono:
                  subseq_mae = mono
              #                print('case 2')
              elif subseq_mae > mono:
                  # 減少パターン
                  subseq_muki = -1
                  subseq_mae = mono
              #                print('case 3')
              else:
                  subseq_muki = 1
                  subseq_mae = mono
          #                print('case 4')
  
          elif (mono - subseq_mae) * subseq_muki >= 0:
              # 増加減少の向きが合うとき
              # ここでは横這いのときもok
              subseq_mae = mono
          #            print('case 5')
          else:
              # そうで無ければ仕切り直し
              subseq_mae = mono
              subseq_nth += 1
              subseq_muki = None
  #            print('case 6')
  
  # 後処理
  pass
  
  print(subseq_nth)
  
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"}]